Muszę policzyć wyrazy i zdania w tekście. Mam obecnie coś takiego:
import java.io.*;
import java.util.Scanner;
class zad{
public static void main(String[] args) {
try {
System.out.println("Podaj ścieżkę dostępu do pliku: ");
BufferedReader bufferr = new BufferedReader(new InputStreamReader(System.in));
String sciezka = bufferr.readLine();
FileReader in = new FileReader(sciezka);
System.out.println("Liczba slów: " + slowa(in));
in.close();
buffer.close();
} catch (FileNotFoundException e) {
System.out.println("Plik nie istnieje");
System.exit(1);
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static int slowa(FileReader plik) {
Scanner s = new Scanner(plik);
int licznik = 0;
while (s.hasNext()) {
s.useDelimiter("\\s*.\\s*").next();
licznik++;
}
s.close();
return licznik;
}
}
Tylko liczy ilość liter bez kropki. Usunięcie useDelimiter(), liczy słowa ale jeśli kropka jest osobno również ją policzy. Jak to rozwiązać, aby liczyło tylko wyrazy do końca zdania(. ! ?)