F
Fredooo
Gast
Hallo,
habe folgendes Problem: Ich habe eine Methode zum Zählen von Wörtern von großen Textdateien geschrieben,
leider muss mein Rechner sehr lange rumrechnen bis er die Wortanzahl ausspuckt.
Hier is mein Quellcode vielleicht könnt ihr mir ja sagen, wo ich evtl etwas optimieren kann...
habe folgendes Problem: Ich habe eine Methode zum Zählen von Wörtern von großen Textdateien geschrieben,
leider muss mein Rechner sehr lange rumrechnen bis er die Wortanzahl ausspuckt.
Hier is mein Quellcode vielleicht könnt ihr mir ja sagen, wo ich evtl etwas optimieren kann...
Code:
//Methode die prüft ob das jeweilige Zeichen zur "Klasse Wort" gehört
private boolean giltAlsWort (int c)
{
if ((c >= (int)'A' && c <= (int)'Z') || (c >= (int)'a' && c <= (int)'z') || c == 39 || (c== (int) 'Ä')
|| (c== (int) 'ä') || (c== (int) 'Ö') || (c== (int) 'ö') || (c== (int) 'Ü') || (c== (int) 'ü'))
return true;
else return false;
}
public int countWords(String dateiName)
{
boolean test;
int anzahlWörter = 0;
String s = "";
try {
FileReader datei = new FileReader(dateiName);
int c = datei.read();
while (c != -1)
{ c = datei.read();
test = giltAlsWort(c);
if (!test) continue;
while (test) {
s = s + (char) c;
c= datei.read();
test = giltAlsWort(c); }
s = s +" "; }
datei.close();
}
catch (FileNotFoundException f) {System.out.println( "Datei nicht gefunden!!!"); }
catch (IOException e) { System.out.println("Error!!!"); }
int anzahl = 0;
for (int x = 0; x < s.length(); x++)
if (s.charAt(x) == ' ') anzahl++;
return anzahl;
}