Как разбить строку на слова?

1

Поэтому у меня есть неправильная строка, которую я хотел бы разделить на слова. Строка может содержать несколько пробелов и разрывов строк последовательно. Ie Строка:

"Word1     
Word2

Word3 Word4        Word5" 

Получилось бы так:

"Word1 Word2 Word3 Word4 Word5"

Слова могут содержать специальные символы, но не пробелы или разрывы строк.

Теги:
string

5 ответов

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
  • 0
    Что означает "\\ s +"?
  • 0
    Непрерывные пробелы.
Показать ещё 1 комментарий
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

  • 1
    Я думаю, вы пропустили вопрос ОП.
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 здесь

0

Используйте String.split() api или java.util.strintokenizer.

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню