C# Identificar si una cadena es un número

Minahil Noor 12 octubre 2023
  1. Programa de C# para identificar si una cadena es un número Usando el método Enumerable.All()
  2. C# Programa para identificar si una cadena es un número usando el método Regex.IsMatch()
  3. C# Programa para identificar si una cadena es un número usando el método Int32.TryParse()
  4. C# Programa para Identificar si una cadena es un número Usando el bucle foreach
C# Identificar si una cadena es un número

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.

Artículo relacionado - Csharp String