wie für ein bestimmtes Wort in einer Textdatei in Java suchen
-
28-09-2019 - |
Frage
, wie für ein bestimmtes Wort in einer Textdatei in Java suchen? Mit gepufferten Leser, ich habe diesen Code, aber ich erhalte eine
java.lang.ArrayIndexOutOfBoundsException
Bitte helfen Sie mir festzustellen, was mit meinem Programm falsch ist.
System.out.println("Input name: ");
String tmp_name=input.nextLine();
try{
FileReader fr;
fr = new FileReader (new File("F:\\names.txt"));
BufferedReader br = new BufferedReader (fr);
String s;
while ((s = br.readLine()) != null) {
String[] st = s.split(" ");
String idfromtextfile=st[0];
String nemfromtextfile = st[1];
String scorefromtextfile=st[2];
if(nemfromtextfile.equals(tmp_name)){
System.out.println("found");
}else{
System.out.println("not found");
}
}
}catch(Exception e){ System.out.println(e);}
names.txt sieht wie folgt aus:
1
a
0
2
b
0
Lösung
erwartet Ihr Code jede Zeile in der Datei drei durch Leerzeichen getrennte Wörter zu haben. So Ihre Datei wie folgt aussehen muss:
1 a 0
2 b 0
Die ArrayIndexOutOfBoundsException
tritt auf, wenn eine Zeile in der Datei ist, die nicht drei durch Leerzeichen getrennte Wörter hat. Zum Beispiel könnte es eine leere Zeile in der Datei sein.
Sie können dies wie folgt in Ihrem Code überprüfen:
if ( st.length != 3) {
System.err.println("The line \"" + s + "\" does not have three space-separated words.");
}
Andere Tipps
Wenn der Text ist riesig und Sie wollen es nicht auf einmal zu lesen und in Erinnerung zu behalten. Sie können ständig eine Zeile mit readline () gelesen, und für ein Muster jeden der Ausgangsleitung suchen.
Hier ist ein Beispiel dafür, wie es zu tun BufferedReader verwenden Link-Text