C
CJ3PO
Gast
Hallo,
ich habe hier ein kleines Problem. Mit diesem Programm kann man ein Text analysieren ( wie oft kommt jeder Buchstabe vor ). Zusätzlich wird ein Histogram angezeigt.
Meine Frage ist, wie kann ich das Ergebniss in eine TXT Datei umleiten. Zum einlesen hab ich den BufferedReader genommen. Also könnte man doch den BufferedWriter zum schreiben benutzen. Doch irgendwie will das bei mir nicht funktionieren.
Kann es sein das ich bei der Ausgabe in eine TXT file den String nochmal vorher casten muss ???
Sitze schon ne weile an diesem Problem, bin also über jede Hilfe dankbar.
DANKE
cj
ich habe hier ein kleines Problem. Mit diesem Programm kann man ein Text analysieren ( wie oft kommt jeder Buchstabe vor ). Zusätzlich wird ein Histogram angezeigt.
Meine Frage ist, wie kann ich das Ergebniss in eine TXT Datei umleiten. Zum einlesen hab ich den BufferedReader genommen. Also könnte man doch den BufferedWriter zum schreiben benutzen. Doch irgendwie will das bei mir nicht funktionieren.
Kann es sein das ich bei der Ausgabe in eine TXT file den String nochmal vorher casten muss ???
Sitze schon ne weile an diesem Problem, bin also über jede Hilfe dankbar.
DANKE
cj
Code:
package uebung1;
import java.io.*;
public class CharFreqCounter {
private CharFrequence[] freqArray; // Array für die Häufigkeit der Buchstaben
public CharFreqCounter() {
freqArray = new CharFrequence[26]; // array initialisieren mit 26 Buchstaben
for (int x = 0; x < 26; x++) {
freqArray[x] = new CharFrequence((char)('A' + x), 0); // A-Z hochzählen und jeder stelle im Array eine position zuteilen
}
}
public void zaehler(String str) {
char zeichen;
str = str.toUpperCase(); //Methode toUpperCase verändert alle Buchstaben in Großbuchstaben
for (int x = 0; x < str.length(); x++) {
zeichen = str.charAt(x); // rückgabe des Chars bei dem jeweiligen index
if ((zeichen >= 'A') && (zeichen <= 'Z')) {
freqArray[zeichen - 'A'].erhoeheFreq();
}
}
}
public void printArray() {
for (int x = 0; x < 26; x++) {
System.out.print("Buchstabe: " + freqArray[x].getChar()); // Ausgabe des aktuellen Buchstabens
System.out.print(" Haeufigkeit: " + freqArray[x].getFreq()+" ");// Ausgabe der dazugehörigen Anzahl
for (int y = 0; y < freqArray[x].getFreq(); y++) { //Histogramm = genauso viele Sterne wie hoch die Anzahl ist
System.out.print('*');
}
System.out.println();
}
}
public static void main(String[] argv) throws Exception {
CharFreqCounter cont = new CharFreqCounter();
String zeile;
int zeile_write;
BufferedReader br2 = new BufferedReader(new FileReader("test.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("frequency.txt"));
while( (zeile = br2.readLine()) != null ) {
cont.zaehler(zeile);
cont.printArray();
}
}
}