Я не могу разбить строку в Java? - PullRequest
2 голосов
/ 22 октября 2019

У меня есть несколько предложений, разделенных токеном со смешанным регистром, например: -

String s = "Hi, I am a cool Programmer.GO I love to code in Java language.Go Coding is fun for me.";

Теперь я хочу разбить эти предложения на "GO" или "Go" (регистр здесь не имеет значения).

В настоящее время я делаю это так: -

s.split("GO");

Но это только в верхнем регистре.

1 Ответ

5 голосов
/ 22 октября 2019

String.split принимает регулярное выражение ;«простое» решение - определить две модели. Первый шаблон для сопоставления заглавных и строчных букв «G», а второй для сопоставления в обоих случаях «O». Мы также должны удалить все пробелы до или после шаблона (\\s* не соответствует ни одному или нескольким пробелам). И используйте \\b для форсирования границы,

System.out.println(Arrays.toString(s.split("\\s*\\b[Gg][Oo]\\b\\s*")));

Выходы

[Hi, I am a cool Programmer., I love to code in Java language., Coding is fun for me.]

Другой вариант - флаг (?i) без учета регистра. Мол,

System.out.println(Arrays.toString(s.split((?i)\\s*\\bGO\\b\\s*)));

Для того же результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...