Kod:
String aText="The Brown fox jumps over the lasy dog.";
aText+="The Brown fox jumps over the lasy dog.";
aText+="The Brown fox jumps over the lasy dog.";
Burada senin "metot yanlış sayım veriyor" un sebebi "." dan sonra olan kelimeyi de ona iliştiriyor o yüzden yanlış sayım alıyorsun.Bunu kendin de anlayabilirdin mesela token'ları ekrana bastırarak(Debuging).Bir yerde görecektin ki şu var;
"dog.The"
Çünkü StringTkenizer'e delimeter verilmediğinde delimeter " " (boşluk) karakteridir.dog ile The arasında boşluk olmadığı için bunu tek kelime olarak görüyor.Tavsiyem ".,!
vb..." gibi noktalama işaretlerini String classının replace() metodu ile " " karakterine değiştirmek ve tekrar StringTokenizer'e vermektir.
Kod:
StringTokenizer sentences=new StringTokenizer(aText,".");
int sentencesCount=sentences.countTokens();
//operasyon başlıyor.
char [] signs={'.',',','!',';',':','?'};
String newText=getCleanedText(aText);
StringTokenizer words=new StringTokenizer(newText);
int wordsCount=words.countTokens();
System.out.println(sentencesCount);
System.out.println(wordsCount);
Kod:
public String getCleanedText(String aText){
String transformedText=aText;
for(int i=0;i<signs.length;i++){
char replace=signs[i];
transformedText.replace(replace,' ');
}
return transformedText;
}