C# Identificar si una cadena es un número
-
Programa de C# para identificar si una
cadena
es un número Usando el métodoEnumerable.All()
-
C# Programa para identificar si una
cadena
es un número usando el métodoRegex.IsMatch()
-
C# Programa para identificar si una
cadena
es un número usando el métodoInt32.TryParse()
-
C# Programa para Identificar si una
cadena
es un número Usando el bucleforeach
Al tratar con problemas del mundo real, a veces, nos enfrentamos a un problema en el que queremos tomar la entrada como una cadena
pero usarla como un entero
. Para hacerlo posible, siempre tenemos que confirmar si la cadena
de entrada es un número o no.
En C#, podemos usar muchos métodos para identificar si una cadena
de entrada es un número o no. Descubrirás estos métodos mientras lees este artículo hasta el final.
Programa de C# para identificar si una cadena
es un número Usando el método Enumerable.All()
Enumerable.All()
el método pertenece a LINQ
. LINQ
es una parte de C# y se utiliza para acceder a diferentes bases de datos y fuentes de datos. Podemos modificar este método para comprobar si una cadena
es un número. Pasaremos el método char.IsDigit()
como parámetro al método Enumerable.All()
.
La sintaxis correcta para usar este método es la siguiente:
StringName.All(char.IsDigit);
Código de ejemplo:
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.");
}
}
}
Producción :
The Given String is a Number.
C# Programa para identificar si una cadena
es un número usando el método Regex.IsMatch()
En C# podemos usar expresiones regulares
para comprobar varios patrones. Una expresiones regulares
es un patrón específico para realizar una acción específica. En C#, tenemos ^[0-9]+$
y ^\d+$
expresiones regulares para comprobar si una cadena
es un número.
La sintaxis correcta para usar este método es la siguiente:
Regex.IsMatch(StringName, @"Expression");
Código de ejemplo:
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.");
}
}
}
Producción :
The Given String is a Number.
Aquí, el punto importante es que las dos expresiones regulares
, ^[0-9]+$
y ^\d+$
no son iguales en su funcionamiento. ^[0-9]+$
se usa para los caracteres básicos de 0-9 pero ^\d+$
se usa para los caracteres Dígito decimal
en el Unicode, sin RegexOptions.ECMAScript
especificado(por defecto). Por ejemplo, ๔
como 4
en tailandés, también se identifica como un número.
C# Programa para identificar si una cadena
es un número usando el método Int32.TryParse()
El método Int32.TryParse()
se usa para convertir la cadena
de números en un entero con signo de 32 bits
. Si la cadena
no es numérica, no se convierte con éxito, y por lo tanto este método devuelve false.
La sintaxis correcta para usar este método es la siguiente:
Int32.TryParse(StringName, out intvariable);
Aquí intvariable
es cualquier variable entera
no inicializada.
Código de ejemplo:
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.");
}
}
}
Producción :
The Given String is a Number.
C# Programa para Identificar si una cadena
es un número Usando el bucle foreach
Este es el proceso más básico para identificar si una cadena
es un número. En este proceso, comprobaremos que cada carácter de la cadena
es un número usando el bucle foreach
.
La sintaxis correcta para usar el bucle foreach
es la siguiente:
foreach (datatype variablename in somecollection) {
// steps to iterate
}
Código de ejemplo:
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.");
}
}
}
Producción :
The Given String is a Number.