Образец и Мэтчер Java проблема - PullRequest
0 голосов
/ 19 января 2011

"ЧТО-ТО, ЧТО-ТО1, SOMETHING2 ... "

Как я могу разбить эту строку на

ЧТО-ТО ЧТО-ТО1 ЧТО-ТО2

Это то, что у меня есть на данный момент:

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

Однако, он не дает желаемого результата.

Ответы [ 3 ]

5 голосов
/ 19 января 2011

Что именно разделяет части?Просто запятая и один пробел?

Попробуйте:

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

Нет необходимости экранировать запятую, написав \\, в своем регулярном выражении.

2 голосов
/ 19 января 2011
String s = "SOMETHING, SOMETHING1, SOMETHING2";
String[] stringList = s.split(", ");

for(String str : stringList){
    System.out.println(str);
}
0 голосов
/ 19 января 2011

Вот более общее решение (разбиение по несловесным символам):

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

Из шаблона Javadocs:

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

Или, если вы используете Гуава , вы можете сделать эквивалент (на самом деле не совсем эквивалентный, так как он также соответствует не-ascii букв):

for(String word:
Splitter.on(CharMatcher.JAVA_LETTER_OR_DIGIT.negate()).split(str)){
    // do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...