Ciao ragazzi, ho fatto un'esercizio tratto dal mio libro di programmazione e vi sarei grato se poteste darmi un vostro riscontro su come l'ho realizzato. Non ci dovrebbero essere grossi errori dato che viene compilato correttamente ma dato che ci sono arrivato un po' "a tentativi", mi piacerebbe sapere se aveste qualche correzione o suggerimento da darmi.
L'esercizio è:
Modificate l'applicazione SommaNumeriDaStringa in modo che venga richiesto all'utente di reinserire la sequenza se essa non è costituita esclusivamente da cifre e spazi. Per verificare se un carattere è una cifra decimale si può utilizzare il metodo statico isDigit della classe java.lang.Character, così descritto:
public static boolean isDigit(char ch)
Determina se il carattere specificato come argomento è una cifra. Il metodo restituisce true se il carattere è una cifra, e false in caso contrario.
package esercizi;
import prog.io.*;
import java.util.StringTokenizer;
import java.lang.Character.*;
public class Esercizio416 {
public static void main(String[] args) {
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
String sequenza;
char c = ' ';
do {
sequenza = in.readLine("Inserisci una sequenza di numeri separati da spazio: ");
for(int i = 0; i < sequenza.length(); i++) {
c = sequenza.charAt(i);
if(Character.isDigit(c) || c == ' ')
continue;
else
out.println("La sequenza deve contenere solo cifre e spazi, riprova! ");
break;
}
} while(Character.isDigit(c) == false);
StringTokenizer stk = new StringTokenizer(sequenza, " ");
int somma = 0;
while(stk.hasMoreTokens()) {
String token = stk.nextToken();
somma = somma + Integer.parseInt(token);
}
out.println("La somma dei numeri nella sequenza e' " + somma);
}
}