• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

StringTokenizer

Object Storage Arubacloud
0 głosów
614 wizyt
pytanie zadane 26 grudnia 2017 w Java przez Marcin951 Gaduła (3,250 p.)

Witam mam otóż jeden problem z tym kodem

                    Scanner odczyt = new Scanner(new File("src/Sterowanie/Plik.txt"));
                    String text = odczyt.nextLine();
                    StringTokenizer st = new StringTokenizer(text);
                    
                    int n = 0;
                    for (int i = 1; i < 200; i++) {

                        if (tablica[0][n] == (null) && tablica[1][n] == (null)) {
                            tablica[0][n] = st.nextToken();
                            tablica[1][n] = st.nextToken();
                            data[0][n] = st.nextToken();
                            data[1][n] = st.nextToken();
                        } else {
                            n = n + 1;
                        }
                    }

Kiedy usunę z tego dwie linijki
data[0][n] = st.nextToken(); i  data[1][n] = st.nextToken(); to wszystko działą ale z nimi wyskakuje blad 
Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
    at Sterowanie.Logowanie.main(Logowanie.java:234)
Nie za bardzo wiem gdzie leży problem

3 odpowiedzi

+1 głos
odpowiedź 26 grudnia 2017 przez Tomasz90 Nałogowiec (25,140 p.)
wybrane 26 grudnia 2017 przez Marcin951
 
Najlepsza
ten błąd leci jak metoda nextToken() nie może pobrać ze stringa kolejnego tokena.Musiałbyś przed pobraniem sprawdzać przy pomocy hasMoreTokens() czy można pobrać następny token
+1 głos
odpowiedź 26 grudnia 2017 przez Wiciorny Ekspert (270,890 p.)
edycja 26 grudnia 2017 przez Wiciorny
a czym jest data?  Weź pod uwagę że string token zawsze działa w pętli i nie resetuje statusu co mam na myśli?

Tokenizer działa póki ma tokeny...  przyczyn nie resetuje statusu więc jeśli ma czytać  10 tokenów  w pętli 10 okrążeń gdzie czytasz token 4 razy to niestety wystąpi błąd, bo obiektów będzie 4x10 = 40 a mamy tylko 10./
0 głosów
odpowiedź 26 grudnia 2017 przez Marcin951 Gaduła (3,250 p.)
Błąd polegał na tym że ten plik był wygenerowanym Lorem Ipsum prawdopodobnie enter uniemożliwiał dzielenie tekstu na tokeny :)

Podobne pytania

0 głosów
2 odpowiedzi 362 wizyt
pytanie zadane 31 grudnia 2016 w Java przez nemezisso Użytkownik (860 p.)

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...