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*)));
Для того же результата.