Sto cercando una funzione in grado di controllare il carattere se è un numero intero e fare qualcosa è così.come verificare se il carattere è un numero intero
char a = '1';
if (Function(a))
{
do something
}
Sto cercando una funzione in grado di controllare il carattere se è un numero intero e fare qualcosa è così.come verificare se il carattere è un numero intero
char a = '1';
if (Function(a))
{
do something
}
Integer.TryParse
funziona bene.
IsNumeric restituisce 'true' per caratteri non numerici: http://stackoverflow.com/questions/228532/difference-between-char-isdigit- e-char-isnumber-in-c-sharp –
+1 per intero.TryParse – Rab
Grazie per l'avviso su IsNumber, non ne ero a conoscenza. Lo rimuoverò dalla mia risposta. Sai se Integer.TryParse fa la stessa cosa per i caratteri non numerici? – lhan
Usa System.Char.IsDigit metodo
+1 a IsDigit e IsNumber. Nota che nessuno dei due garantisce che il carattere sia "intero" perché IsDigit significa semplicemente che è in cifra di un intero potenzialmente più lungo, IsNumber potrebbe essere float (cioè 1/2). –
IsDigit copre 0-9 e gli equivalenti in altri set di caratteri ed è sempre un numero intero per un singolo carattere (per una stringa più lunga, utilizzare Integer.TryParse). IsNumber restituisce true per 0-9 e per alcuni caratteri Unicode più interessanti nei gruppi "Number, Other" e "Number, Letter" come ½ (ovvero 1 carattere) http://www.fileformat.info/info/unicode /category/No/list.htm – lgaud
IsDigit restituirà true per tutti questi caratteri; a parte 0-9 non verranno analizzati come interi tramite int.TryParse con impostazioni cultura predefinite su una macchina inglese - http://www.fileformat.info/info/unicode/category/Nd/list.htm – lgaud
Prova Char.IsNumber
. Documentazione ed esempi possono essere trovati here
Provare a utilizzare il metodo System.Char.IsDigit
.
Potrebbe essere meglio utilizzare semplicemente un'istruzione switch. Qualcosa di simile:
switch(a)
{
case '1':
//do something.
break;
case '2':
// do something else.
break;
default: // Not an integer
throw new FormatException();
break;
}
Ciò funzionerà fino a quando si sta solo alla ricerca di caratteri 0-9. Qualunque cosa in più (diciamo "10") sarebbe una stringa e non un personaggio. Se stai cercando di vedere solo se alcuni input è un numero intero e l'ingresso è una stringa, si può fare:
try
{
Convert.ToInt32("10")
}
catch (FormatException err)
{
// Not an integer, display some error.
}
se si desidera solo i puri 0-9
cifre, utilizzare
if(a>='0' && a<='9')
IsNumeric
e IsDigit
sia restituiscono vero per alcuni personaggi di fuori della gamma 0-9:
il 012 Il metododovrebbe funzionare perfettamente per questa istanza.
char a = '1';
if (Char.IsDigit(a))
{
//do something
}
più semplice risposta: char.isDigit(char)
char a = '1'; // use var instead of char if a built-in-type
if (char.IsNumber(a))
{
do something
}
Benvenuti in StackOverflow.Le risposte con solo il codice in esse tendono a essere contrassegnate per la cancellazione in quanto sono "di bassa qualità". Si prega di leggere la sezione di aiuto sulla risposta alle domande, quindi prendere in considerazione l'aggiunta di alcuni commenti alla risposta. – Graham
Nota a margine: si dovrebbe prendere in considerazione se avete bisogno di "interger" (come sequenza di cifre - ci sono personaggi coppia come questo), "cifra" (0-9 in più lingue) o "un numero" (1/2, ...) –