Wie kann ich erkennen, BlankLine, der Scanner hat erhalten?
Möchte ich, um Daten als text-Dateien ,und ich den Scanner verwenden, um Daten als text-Datei.
Es ist-Profil speichern-Muster
name
status
friend
friend
.
.
(Blank line)
Leerzeile trennen jedes Profil.(Freund looping bis zum nächsten Zeile eine Leere Zeile)
john
happy
james
james
sad
john
Und ich code ein, um Datei-Formular text, wie dies
try{
Scanner fileIn = new Scanner(new FileReader("testread.txt"));
while(fileIn.hasNextLine()){
String line = fileIn.nextLine();
String linename = fileIn.nextLine();
String statusline = fileIn.nextLine();
println("name "+linename);
println("status "+statusline);
while(/*I asked at this*/)){
String friendName = fileIn.nextLine();
println("friend "+friendName);
}
}
}catch(IOException e){
println("Can't open file");
}
Was der Bedingung, dass ich verwenden sollte, um zu erkennen Leerzeile zwischen Profil?
- Hausaufgaben-tag ist veraltet, siehe meta.stackexchange.com/questions/147100/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie implementieren von benutzerdefinierter Funktion wie unten, die Sie zurück
nextLine
wenn es nicht leer ist.Können Sie einfach überprüfen Sie Ihre
scanner.nextLine()
für einen Zeilenvorschub"\n"
(ich meine""
, weilnextLine()
nicht Lesen"\n"
am Ende jeder Zeile).. Wenn Ihr gleich, es wird eine leere Zeile..BTW, es gibt ein problem mit Ihrem code: -
Sind Sie, vorausgesetzt, dass Ihr
fileIn.hasNextLine()
bestätigen wird über die nächsten drei Zeilen wirdnot null
.Jedes mal, wenn Sie tun eine
fileIn.nextLine()
Sie brauchen, um zu überprüfen, ob es verfügbar ist oder nicht.., Oder Sie bekommen Ausnahme...*EDIT: -
O. o... ich sehe dort haben Sie die Ausnahme behandelt.. Dann wird es kein problem.. Aber man sollte trotzdem ändern Sie den obigen code.. Es sieht nicht schön..
Nach der überprüfung auf eine vorhandene Zeile mit
scanner.hasNextLine()
Methode, die Sie verwenden können, diese Bedingung:und verwenden Sie die
line
variable in Ihrer Logik.Versuchen, diese...
nextLine
..