Как разделить строки с апострофом в Java? - PullRequest
1 голос
/ 25 апреля 2020

Я пытаюсь разделить строку «что, таким образом, роза красоты никогда не будет d ie» на отдельные слова, и мой код работает - за исключением апострофов. "beauty's" все еще возвращается как "beauty's" вместо "beauty" и "s".

Это то, что я пытаюсь:

String line = "That thereby beauty’s rose might never die,";
String[] words = line.split("[' ,]");

Я не очень понимаю, добавляя несколько разделителей в Java, но, похоже, это работает для всего, кроме апострофов. Может кто-нибудь помочь мне и сказать, что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

заменить ' на :

String[] words = line.split("[’ ,]");

0 голосов
/ 25 апреля 2020

Внимательно посмотрите на апостроф line и на ваш разделенный апостроф. Они разные персонажи. ! = '. Скорее всего, вы захотите преобразовать первый во второй.

Какой-то код для размышления:

String line = "That thereby beauty’s rose might never die,";
String[] words = line.split("[' ,]");
System.out.println(Arrays.toString(words));

line = "That thereby beauty's rose might never die,";
words = line.split("[' ,]");
System.out.println(Arrays.toString(words));

Вывод:

[That, thereby, beauty’s, rose, might, never, die]
[That, thereby, beauty, s, rose, might, never, die]
...