Я бы использовал регулярное выражение, чтобы найти все слова, которые заканчиваются пунктуацией, и вернуть его в список.Для получения дополнительной информации о регулярных выражениях нажмите здесь .
private static List<String> findPunctuation(String sentence) {
List<String> neededWords = new ArrayList<String>();
String[] words = sentence.split(" ");
for (String word : words)
if (word.matches(".*[\\?!\\.]"))
neededWords.add(word);
return neededWords;
}
Возможно, это не идеальное решение для вас, но оно должно дать вам направление.
РЕДАКТИРОВАТЬ
Если вы хотите вернуть слово только при наличии количества слов x, вы можете добиться этого с помощью этого:
private static String findPunctuation(String sentence) {
Pattern p = Pattern.compile("(?:.* ){6,8}(.*[\\?!\\.])$");
Matcher m = p.matcher(sentence);
while(m.find())
return m.group(1);
return null;
}
Надеюсь, это поможет.