Salve a tutti, volevo sapere sè esiste un metodo in java simile ad Is_Int per PHP, cioè un metodo che passatogli un valore mi dice sè è un intero oppure no.
Salve a tutti, volevo sapere sè esiste un metodo in java simile ad Is_Int per PHP, cioè un metodo che passatogli un valore mi dice sè è un intero oppure no.
Ma Java non è tipizzato ?
Dovresti saperlo a priori se un valore è intero o no![]()
Puoi usare Integer.valueOf o Integer.parseInt che prendono uno String come argomento. Se effettivamente lo String può essere "interpretato" come un Integer (e quindi ne puoi ottenere il tipo semplice int) fila tutto liscio, altrimenti ti viene sollevata una NumberFormatException. Le API sono tue amiche
http://java.sun.com/javase/6/docs/ap...g/Integer.html
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
E'proprio questo il punto...Il mio problema era quello che non volevo gestire le eccezzioni ma semplicemente trovare un metodo adatto.
Se l'utente inserisce un valore diverso da un intero (es. una Stringa), mi viene generata un eccezione InputMisMatch, il mio problema è che non riesco a gestire l'eccezzione di modo che venga richiesto nuovamente di inserire l'input poichè il programma va in loop.codice:if(!cambia){ do{ System.out.print("TURNO Nero - Inserisci le coordinate>"); x= input.nextInt(); y= input.nextInt(); }while(settaCoordinate(x, y, "N")==false); stampaMatrice(false); cambia = true;
a questo punto gestirei l'input in maniera tale da accettare solo il range dei caratteri numerici
A cosa ti riferisci? O meglio...ci sono delle librerie che ti permettono di accettare solo caratteri numerici?
se non vuoi gestire le eccezioni scrivi tu un metodo che controlla, partendo da una stringa di input, che tutti i caratteri di cui la stringa e' composta siano numerici. Se effettivamente sono tutti numerici ritorna true, se c'e' anche solo 1 carattere non numerico, ritorna false;
guardati l'api di Character e cerca il metodo isDigit(), con cui controllare ogni carattere di cui e' composta la tua stringa... (o forse e' un metodo di Characters, nn mi ricordo e non ho tempo di controllare ora)
Problema risolto...Grazie tante nether, praticamente il metodo Character.isDigit() restituisce true sè il char che gli passo è un int false altrimenti. Correggimi se sbaglio..
Character.isDigit(char c) restituisce true se il carattere passato come parametro rappresenta una cifra... quindi fare un metodo che controlla tutti i caratteri di una stringa ritornando false appena .isDigit() ritorna false, oppure true alla fine del controllo di tutti i caratteri e' davvero banale.
Tra l'altro c'e' anche un metodo di string che ti ritorna un array di caratteri di cui e' composta la stringa...
A me serviva che mi prendesse in input solo i primi due valori, separati da uno spazio, con lunghezza 1, e ovviamente interi. Tutto il resto lo considero come errore di immissione delle coordinate, senza leggere tutto quello che l'utente scrive.