Поэтому у меня есть неправильная строка, которую я хотел бы разделить на слова. Строка может содержать несколько пробелов и разрывов строк последовательно. Ie Строка:
"Word1
Word2
Word3 Word4 Word5"
Получилось бы так:
"Word1 Word2 Word3 Word4 Word5"
Слова могут содержать специальные символы, но не пробелы или разрывы строк.
Если вам нужно заменить все пробелы (включая разрывы строк) одним символом пробела, вы можете использовать следующее:
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
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
Это может иметь смысл, если у вас есть 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
здесь
Используйте String.split() api или java.util.strintokenizer.
String yourString = "your string " +
"word2 " +
"word3";
String test = yourString.trim().replaceAll("\\s+", " ");
String[] array = test.split(" |\r");