 |
Cri |
.primate.
Registered: Oct 2007
Posts: 67 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Primo
Time Online: 1 Day, 12:00:16 [...]
Status: Offline
Edit | Report | IP: Logged |
aiuto Esercizio!!!!!!
Ciao ragazzi, qualcuno mi puo' dire dove sbaglio????
Se inserisco una stringa composta non solo di cifre e spazi il mio codice entra nel ciclo e non esce piu!!!!!!!!!! dov'e' l'errore????
grazie in anticipo
/*
Es 4.23 pag 153
Modificate l'applicazione SommaNumeriDaStringa in modo che venga all'utente di reinserire la
sequenza se essa non e' costituita esclusivamente da cifre e spazi. Per verificare se un carattere
e' un cifra decimale si puo' utilizzare il metodo statico isDigit della classe java.lang.Character:
- public static boolean isDigit(char ch)
*/
import prog.io.*;
import java.util.StringTokenizer;
class Es4_23
{
public static void main(String[] args)
{
//predisposizione dei canali di comunicazione
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
//lettura della sequenza
//String sequenza = in.readLine("Inserisci una sequenza di numeri interi separati da spazi: ");
boolean continua = false;
String sequenza = "";
do
{
sequenza = in.readLine("Inserisci una sequenza d numeri: ");
for (int i = 0 ; i < sequenza.length(); i++)
{
char c = sequenza.charAt(i);
if(!Character.isDigit(c) && c != ' ')
{
out.println("ripeti stringa ");
continua = true;
break;
}
}
} while(continua);
//costruzione dell'estrattore di token
StringTokenizer stk = new StringTokenizer(sequenza, " ");
int somma = 0;
while (stk.hasMoreTokens())
{
String token = stk.nextToken();
somma = somma + Integer.parseInt(token);
}
//comunicazione del risultato
out.println("La somma dei numeri nella sequenza e' : " + somma);
}
}
|