私が持っているセンテンスカウンターを作成する方法を見つけようとしていますが、ピリオド/疑問符/などの後に2つのスペースがある場合にのみ、センテンスをカウントする必要があります。
たとえば、私が持っているコードでは、「こんにちは、私の名前はライアンです...」という文字列を入力すると、3 つの文のカウントが返されます。1つの文だけを数える必要があります。
このプログラムは、単語もカウントする必要があります。スペースの量をとって単語を数えます-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;
}