如何将字符串拆分为单词?

时间:2014-03-14 10:24:17

标签: java regex string

所以我有一些不规则的字符串,我想分成单词。字符串可以包含多个空格和换行符。 即字符串:

"Word1     
Word2

Word3 Word4        Word5" 

结果如下:

"Word1 Word2 Word3 Word4 Word5"

单词可以包含特殊字符,但不能包含空格或换行符。

5 个答案:

答案 0 :(得分:2)

如果您需要用一个空格字符替换所有空格(包括换行符),则可以使用以下内容;

String input = "word0\r\nword1 word2";
//                       | replace all instances of...
//                       |           | ... one or more whitespace (including line breaks)
//                       |           |       ... with a single space 
System.out.println(input.replaceAll("\\s+", " "));

<强>输出

word0 word1 word2

答案 1 :(得分:0)

使用String.split()api或java.util.strintokenizer。

答案 2 :(得分:0)

public class HelloWorld{

     public static void main(String []args){
         String sentence = "Word1 Word2 Word3 Word4 Word5";
        System.out.println(sentence.replace("\\s"," "));
     }
}

\\s[ \\t\\n\\x0B\\f\\r]

相同

<强>输出:

  

Word1 Word2 Word3 Word4 Word5

答案 3 :(得分:0)

String yourString = "your string      " +
                "word2       " +
                "word3";

String test = yourString.trim().replaceAll("\\s+", " ");
String[] array = test.split(" |\r");

答案 4 :(得分:0)

如果您将Guava作为依赖项,那么这是有意义的:

String yourString = "Word1 \n" + "Word2 \n"
        + "Word3 Word4               Word5";

String result = Joiner.on(" ").join(
        Splitter.onPattern("\\s+").split(yourString));

System.out.println(result);

请参阅Splitter / Joiner here

的说明