Java 如何将字符串拆分为单词?
所以我有一些不规则的字符串,我想分成几个单词。字符串可以连续包含多个空格和换行符。 即字符串:Java 如何将字符串拆分为单词?,java,regex,string,Java,Regex,String,所以我有一些不规则的字符串,我想分成几个单词。字符串可以连续包含多个空格和换行符。 即字符串: "Word1 Word2 Word3 Word4 Word5" 结果是: "Word1 Word2 Word3 Word4 Word5" 单词可以包含特殊字符,但不能包含空格或换行符 使用String.split()api或java.util.strintokenizer。如果需要用一个空格字符替换所有空格(包括换行符),可以使用以下命令: String input =
"Word1
Word2
Word3 Word4 Word5"
结果是:
"Word1 Word2 Word3 Word4 Word5"
单词可以包含特殊字符,但不能包含空格或换行符 使用String.split()api或java.util.strintokenizer。如果需要用一个空格字符替换所有空格(包括换行符),可以使用以下命令:
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
\\s
与[\\t\\n\\x0B\\f\\r]相同
输出:
单词1单词2单词3单词4单词5
如果您具有以下依赖项,则这可能是有意义的:
String yourString = "Word1 \n" + "Word2 \n"
+ "Word3 Word4 Word5";
String result = Joiner.on(" ").join(
Splitter.onPattern("\\s+").split(yourString));
System.out.println(result);
请参阅拆分器的说明
/连接器
这“\\s+”代表什么?连续空格。@user3403621它是一种模式
特殊构造,由任何空格(\\s
)组成,一个或多个实例完全匹配(+
)。请参阅Pattern
API。我猜您错过了OP的问题。
String yourString = "your string " +
"word2 " +
"word3";
String test = yourString.trim().replaceAll("\\s+", " ");
String[] array = test.split(" |\r");
String yourString = "Word1 \n" + "Word2 \n"
+ "Word3 Word4 Word5";
String result = Joiner.on(" ").join(
Splitter.onPattern("\\s+").split(yourString));
System.out.println(result);