C# Identifica se una stringa è un numero
-
Programma C# per identificare se una
stringa
è un numero utilizzando il metodoEnumerable.All()
-
Programma C# per identificare se una
stringa
è un numero utilizzando il metodoRegex.IsMatch()
-
Programma C# per identificare se una
stringa
è un numero utilizzando il metodoInt32.TryParse()
-
Programma C# per identificare se una
stringa
è un numero usando il bucleforeach
Mentre affrontiamo problemi del mondo reale, a volte, dobbiamo affrontare un problema in cui vogliamo prendere l’input come una stringa
ma usarlo come un numero intero
. Per renderlo possibile dobbiamo sempre confermare che la stringa
di input sia un numero oppure no.
In C#, possiamo usare molti metodi per identificare se una stringa
di input è un numero o meno. Scoprirai questi metodi leggendo questo articolo fino alla fine.
Programma C# per identificare se una stringa
è un numero utilizzando il metodo Enumerable.All()
Il metodo Enumerable.All()
appartiene a LINQ
. LINQ
fa parte di C# e viene utilizzato per accedere a diversi database e origini dati. Possiamo modificare questo metodo per verificare se una stringa
è un numero. Passeremo il metodo char.IsDigit()
come parametro al metodo Enumerable.All()
.
La sintassi corretta per utilizzare questo metodo è la seguente:
StringName.All(char.IsDigit);
Codice di esempio:
using System;
using System.Linq;
public class IdentifyString {
public static void Main() {
string number = "123456";
if (number.All(char.IsDigit)) {
Console.WriteLine("The Given String is a Number.");
} else {
Console.WriteLine("The Given String is Not a Number.");
}
}
}
Produzione:
The Given String is a Number.
Programma C# per identificare se una stringa
è un numero utilizzando il metodo Regex.IsMatch()
In C# possiamo usare le espressioni regolari
per controllare vari modelli. Una espressione regolare
è un modello specifico per eseguire un’azione specifica. In C#, abbiamo espressioni regolari ^[0-9]+$
e ^\d+$
per verificare se una stringa
è un numero.
La sintassi corretta per utilizzare questo metodo è la seguente:
Regex.IsMatch(StringName, @"Expression");
Codice di esempio:
using System;
using System.Text.RegularExpressions;
public class IdentifyString {
public static void Main() {
string number = "123456";
if (Regex.IsMatch(number, @"^[0-9]+$")) {
Console.WriteLine("The Given String is a Number.");
} else {
Console.WriteLine("The Given String is Not a Number.");
}
}
}
Produzione:
The Given String is a Number.
Qui, il punto importante è che le due espressioni regolari
, ^[0-9]+$
e ^\d+$
non sono la stessa cosa nel loro funzionamento. ^[0-9]+$
è usato per i caratteri 0-9 di base ma ^\d+$
è usato per cifre decimali
caratteri in Unicode, senza RegexOptions.ECMAScript
specificato (predefinito). Ad esempio, ๔
come 4
in thailandese, è anche identificato come un numero.
Programma C# per identificare se una stringa
è un numero utilizzando il metodo Int32.TryParse()
Il metodo Int32.TryParse()
viene utilizzato per convertire la stringa
di numeri in un intero firmato a 32 bit
. Se la stringa
non è numerica, non viene convertita con successo e quindi questo metodo restituisce false.
La sintassi corretta per utilizzare questo metodo è la seguente:
Int32.TryParse(StringName, out intvariable);
Qui intvariable
è qualsiasi variabile intera
non inizializzata.
Codice di esempio:
using System;
public class IdentifyString {
public static void Main() {
int n;
string number = "123456";
bool result = Int32.TryParse(number, out n);
if (result) {
Console.WriteLine("The Given String is a Number.");
} else {
Console.WriteLine("The Given String is Not a Number.");
}
}
}
Produzione:
The Given String is a Number.
Programma C# per identificare se una stringa
è un numero usando il bucle foreach
Questo è il processo più semplice per identificare se una stringa
è un numero. In questo processo, controlleremo ogni carattere della stringa
come un numero usando il bucle foreach
.
La sintassi corretta per utilizzare il bucle foreach
è la seguente:
foreach (datatype variablename in somecollection) {
// steps to iterate
}
Codice di esempio:
using System;
public class IdentifyString {
// custom method to check if a string is a number
public static bool CustomMethod(string number) {
foreach (char c in number) {
if (c >= '0' && c <= '9') {
return true;
}
}
return false;
}
public static void Main() {
string number = "123456";
if (CustomMethod(number)) {
Console.WriteLine("The Given String is a Number.");
} else {
Console.WriteLine("The Given String is Not a Number.");
}
}
}
Produzione:
The Given String is a Number.