Per controllare se l'utente ha inserito un numero hai a disposizione tutta una serie di classi wrapper per tutti i tipi di dati.
Integer, Double, Float, Character...
Ognuna di queste classi mette a disposizione un metodo, parseTipo (dove al posto di Tipo c'è il tipo corrispondente) che permette di trasformare una stringa nel tipo di dato corretto. Questo metodo lancia una Exception nel caso la trasformazione fallisca (perchè nella stringa non c'è un valore del tipo corretto).
Controllando se viene lanciata o meno l'eccezione puoi sapere se il tipo di dato inserito dall'utente è corretto o meno.
Esempio. Se voglio che l'utente inserisca un intero:
codice:
String valoreLetto = ... // Leggo da tastiera (mi aspetto un intero)
try {
int valore = Integer.parseInt( valoreLetto );
} catch (Exception e) {
System.out.println("Non hai inserito un intero");
}
Ovvio che per sapere se l'utente ha inserito solo caratteri numerici nessuno ti vieta di scorrere tutta la stringa carattere per carattere e controllare:
codice:
String mioNumero = "1234567890";
boolean result = true;
for (int i=0; i<mioNumero.length(); i++)
result = result & Character.isDigit(mioNumero.charAt(i));
if ( result ) {
System.out.println("La stringa contiene un numero");
} else {
System.out.println("La stringa contiene anche altri caratteri");
}
Ciao.