Я пытаюсь понять, как сделать счетчик предложений, который у меня есть, но дело в том, что мне нужно, чтобы он подсчитывал предложение ТОЛЬКО тогда, когда после точки/вопросительного знака/и т. д. идут два пробела.
Например, с кодом, который у меня есть, если вы введете строку «привет, меня зовут Райан ...», она вернет количество предложений 3. Мне нужно, чтобы он считал только одно предложение.
Эта программа также должна считать слова. Я считаю слова, взяв количество пробелов - 1. Вот в чем заключается моя проблема, я либо путаю количество слов, либо количество предложений.
Вот метод подсчета слов:
public static int countWords(String str){
if(str == null || str.isEmpty())
return 0;
int count = 0;
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) != ' '){
count++;
while(str.charAt(i) != ' ' && i < str.length()-1){
i++;
}
}
}
return count;
}
А вот и метод подсчета предложений:
public static int sentenceCount(String str) {
String SENTENCE_ENDERS = ".?!";
int sentenceCount=0;
int lastIndex=0;
for(int i=0;i < str.length(); i++){
for(int j=0;j < SENTENCE_ENDERS.length(); j++){
if(str.charAt(i) == SENTENCE_ENDERS.charAt(j)){
if(lastIndex != i-1){
sentenceCount++;
}
lastIndex = i;
}
}
}
return sentenceCount;
}