Non ci siamo ancora capiti e non hai capito l'errore né come si usa StringTokenizer·
Il tuo errore viene fuori dal fatto che chiedi nextToken ad un tokenizer che non ha più elementi ed è l'unico modo che il sistema ha per segnalarti l'errore.
Il fatto che commentando quella riga tu non abbia l'errore significa come ti ho detto (cercando di capire la contorsione di ricorsioni del tuo codice) che non ti trovi mai in una condizione del genere o perché ogni volta che fai nextToken il token è valido oppure perché non ti trovi mai con R < 0.
Se tu vuoi lanciare una eccezione, devi agire in altro modo (è diversa la questione) e ti basta quanto segue
Se tu hai una stringa fatta in questo modo:
e faicodice:String s = "A B C D E F";hai un oggetto in cui ci sono 6 elementi.codice:StringTokenizer token= new StringTokenizer(s," ");
L'oggetto lo scorri in genere in questo modo
su temp puoi chiederti quanto è grande (se 1 più).codice:String temp ; while (token.hasMoreTokens()) { temp = token.nextToken(); if (temp.trim().length() > 1){ throw new Exception(); } System.out.println(temp); }
La tua eccezione va lanciata in questo modo.
Prova a vedi, non è necessaria nemmeno la ricorsione.
A riguardo ti consiglio di dare un'occhiata alle API di StringTokenizer e alle API di String

Rispondi quotando