Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java按空格、新行、制表符、标点符号拆分字符串_Java_String - Fatal编程技术网

Java按空格、新行、制表符、标点符号拆分字符串

Java按空格、新行、制表符、标点符号拆分字符串,java,string,Java,String,各位 我有一根这样的绳子 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+"); 问题是它包含了“那个”,而不是我想要的“

各位

我有一根这样的绳子

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+");
问题是它包含了“那个”,而不是我想要的“那个”。请教我如何解决这个问题。谢谢

你能行

String[] dic = message.split("\\W+");
\\W
表示非字母数字字符。

使用:

你可以用


可能会重复查看标题,目标是删除所有标点符号,而不仅仅是
@assylias ok,然后是
Splitter.on(CharMatcher.JAVA\u LETTER.negate()).trimResults().omitEmptyString()
谢谢大家!我选择加勒特·霍尔的答案。
// 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);
 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());
 }