2013-03-03 27 views
7

Przeszukałem podobne pytania, ale żadna nie pomogła.Jak sprawdzić koniec linii za pomocą skanera?

Rozważmy plik:

Cześć, jak się masz?
gdzie byłeś?

Chcę wykonać kilka operacji po zakończeniu każdej linii. Jeśli użyję numeru next(), nie powiem mi, kiedy dotarłem do końca pierwszej linii.

Również widziałem hasNextLine() ale to tylko mówi mi, czy istnieje inna linia, czy nie.

+0

Czy masz jeden i tylko jeden znak zapytania (?) Na końcu każdej linii? – niculare

+0

@niculare hehe..no..it może się zmienić.Jeśli tak było, wiem, że byłoby to proste. –

Odpowiedz

14

Należy rozważyć użycie więcej niż jednego skanera, jednego do pobrania każdej linii, a drugiego do zeskanowania każdej linii po jej otrzymaniu. Jedyne zastrzeżenie, które muszę podać to to, że musisz zamknąć wewnętrzny skaner po zakończeniu używania go. W rzeczywistości będziesz musiał zamknąć wszystkie skanery po zakończeniu ich używania, ale przede wszystkim wewnętrzne skanery, ponieważ mogą się sumować i marnować zasoby.

np

Scanner fileScanner = new Scanner(myFile); 
while (fileScanner.hasNextLine()) { 
    String line = fileScanner.nextLine(); 

    Scanner lineScanner = new Scanner(line); 
    while (lineScanner.hasNext()) { 
    String token = lineScanner.next(); 
    // do whatever needs to be done with token 
    } 
    lineScanner.close(); 
    // you're at the end of the line here. Do what you have to do. 
} 
fileScanner.close(); 
+0

Dość burzy mózgów :) – Mordechai

+0

@MouseEvent: bicie mózgu bardziej przypomina. –

+0

Nie udało się uzyskać .. –

1

można skanować linii tekstu po linii i podzielić każdy wiersz w użyciu tokenów String.split() metody. W ten sposób wiesz, kiedy jedna linia się zakończyła, a także wszystkie tokeny w każdej linii:

Powiązane problemy