16

みんな。

私はこのような文字列を持っています

String message = "This is the new message or something like that, OK";

そしてそれを配列に分割したい

String[] dic = {"this", "is", "the", "new", "message", "or", "something", "like", "that", "OK"};

使用しました

message = message.split("\\s+");

問題は、私が望むような「あれ」ではなく、「あれ」が含まれていることでした。それを解決する方法を教えてください。ありがとう

4

3 に答える 3

38

できるよ

String[] dic = message.split("\\W+");

\\W英数字ではないことを意味します。

于 2012-05-12T11:18:07.480 に答える
7

StringTokenizerを使用できます

 String message = "This is the new message or something like that, OK";
 String delim = " \n\r\t,.;"; //insert here all delimitators
 StringTokenizer st = new StringTokenizer(message,delim);
 while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
 }
于 2012-05-12T11:24:15.870 に答える
3

Guavaを使用する:

// define splitter as a constant
private static final Splitter SPLITTER =
Splitter.on(CharMatcher.WHITESPACE.or(CharMatcher.is(','))
        .trimResults()
        .omitEmptyStrings();
// ...

// and now use it in your code
String[] str = Iterables.toArray(SPLITTER.split(yourString), String.class);
于 2012-05-12T11:22:17.837 に答える