Hallo zusammen, bin leider blutiger Anfänger in Java, vielleicht kann mir jemand helfen.
Ich soll ein Programm schreiben, das in einer LaTeX-Eingabedatei die Wörter, die Zeichen und die Leerzeichen zählt. Komischerweise klappt das nicht so wie gewünscht, weiss echt nicht was ich falsch mache.
Außerdem habe ich noch folgendes Problem: in einer LaTeX-Datei wimmelt es natürlich von Anführungszeichen und Backslashes, da kommt Java doch mit den Strings völlig durcheinander. Allerdings kapier ich nicht, wie ich vorher, ohne einen String zu haben, die Eingabedatei automatisch "escapen" soll.
Merci für eure Hilfe
Hier mein Code soweit:
Ich soll ein Programm schreiben, das in einer LaTeX-Eingabedatei die Wörter, die Zeichen und die Leerzeichen zählt. Komischerweise klappt das nicht so wie gewünscht, weiss echt nicht was ich falsch mache.
Außerdem habe ich noch folgendes Problem: in einer LaTeX-Datei wimmelt es natürlich von Anführungszeichen und Backslashes, da kommt Java doch mit den Strings völlig durcheinander. Allerdings kapier ich nicht, wie ich vorher, ohne einen String zu haben, die Eingabedatei automatisch "escapen" soll.
Merci für eure Hilfe
Hier mein Code soweit:
Code:
import java.io.*;
import java.util.*;
class Count {
public Count() {
}
// liest einen String aus der LaTeX-Eingabedatei ein
public String readData(File f) throws IOException {
String s = (new BufferedReader(new InputStreamReader(new FileInputStream(f)))).readLine();
return s;
}
// zählt die Leerzeichen
public int whiteSpaceCount(String s) throws IOException {
int w = 0;
int i = 0;
while (i < (s.length())) {
if (' ' == (s.charAt(i))) {
w++;
}
i++;
}
return w;
}
// ermittelt die Anzahl der Zeichen
public int charCount(String s) throws IOException {
int c = (s.length()) - (whiteSpaceCount(s));
return c;
}
// zählt die Wörter im String, ab dem zweiten Wort beginnt immer ein Wort, wenn auf ein Leerzeichen
// ein normales Zeichen folgt.
public int wordCount(String s) throws IOException {
int words = 0;
if ((s.length()) == 0) {
return 0;
}
else {
int i = 1;
while (i < ((s.length()) + 1)) {
if (' ' == (s.charAt(i))) {
if (' ' != (s.charAt(i+1))) {
words++;
}}
i++;
return words;
}}}}