2011-01-19 14 views
0

"SOMETHING、SOMETHING1、 SOMETHING2、..."パターンとJavaの問題

私はSOMETHING1のSOMETHING2

SOMETHINGにその文字列を分割することができますどのようにマッチャこれは私が現時点で持っているものです:

Pattern p = Pattern.compile("\\,+"); 
Matcher m = p.matcher(nVI); 
while(m.find()){ 
System.out.println(m.group(1)); 

ただし、目的の結果が得られていません。

+2

なぜ、string.split()オプションを使用し、 '、'文字で分割することはできません。 –

答えて

5

パーツを正確に分けるものは何ですか?コンマとスペースは1つだけですか?あなたの正規表現で\\,を書き込むことによって、コンマをエスケープする必要はありません

String[] parts = nVI.split(", "); 

はこれを試してみてください。

2
String s = "SOMETHING, SOMETHING1, SOMETHING2"; 
String[] stringList = s.split(", "); 

for(String str : stringList){ 
    System.out.println(str); 
} 
0

ここではより一般的な解決策(非単語の文字によって分割)です:

String[] stringList = s.split("\\W+"); 

PatternのJavadocから:

\w A word character: [a-zA-Z_0-9] 
\W A non-word character: [^\w] 

それともGuavaを使用している場合、あなたが行うことができます同等です(実際には同等ではありません。非ASCII文字にも一致します)。

for(String word: 
Splitter.on(CharMatcher.JAVA_LETTER_OR_DIGIT.negate()).split(str)){ 
    // do something 
}