2016-11-23 10 views
3

文字列「role1 @ role2 @ role3 @ role4 $ arole」を区切り文字@と$で区切ります。私は、Javaコード区切り文字を保持するStringUtilsまたはライブラリクラスメソッド

String str = "[email protected]@[email protected]$arole"; 
     String[] values = StringUtils.splitPreserveAllTokens(str, "\\@\\$"); 

     for (String value : values) { 
      System.out.println(value); 
     } 

以下で使用し、その結果

role1 
role2 
role3 
role4 
arole 

を得ました。しかし、私の要件は、結果に区切りを維持することです。だから、結果が要件

role1 
@role2 
@role3 
@role4 
$arole 

あたりのようにする必要があり、私はそれを行うには、ApacheコモンズのStringUtils方法を分析したが、いずれかの手がかりを見つけたことができませんでした。

上記の目的の結果を得るためのライブラリクラスはありますか?

答えて

3

あなたは肯定先読みでシンプルなsplitを使用することがあります。

String str = "[email protected]@[email protected]$arole"; 
String[] res = str.split("(?=[@$])"); 
System.out.println(Arrays.toString(res)); 
// => [role1, @role2, @role3, @role4, $arole] 

Java demo

(?=[@$])正規表現は(@または$シンボルに続いて、文字列内の任意の場所に一致するを参照してください。 $は、[...]文字クラス内でエスケープする必要はありません。

関連する問題