У вас есть одна маленькая ошибка в вашем регулярном выражении.Попробуйте это:
String[] Res = Text.split("[\\p{Punct}\\s]+");
[\\p{Punct}\\s]+
переместите форму +
внутри класса персонажа наружу.В противном случае вы разделяете также на +
и не объединяете символы разделения подряд.
Так я получаю для этого кода
String Text = "But I know. For example, the word \"can\'t\" should";
String[] Res = Text.split("[\\p{Punct}\\s]+");
System.out.println(Res.length);
for (String s:Res){
System.out.println(s);
}
этот результат
10
Но
Я
знаю
Для
Например
*
слово
может
t
должно
Что должно соответствовать вашему требованию.
В качестве альтернативы вы можете использовать
String[] Res = Text.split("\\P{L}+");
\\P{L}
означает, что это не кодовая точка Unicode со свойством "Буква"