C# Identificar se uma string é um número

Minahil Noor 12 outubro 2023
  1. C# Programa para identificar se uma string é um número utilizando Enumerable.All() Método
  2. C# Programa para identificar se um string é um número utilizando Regex.IsMatch() Método
  3. C# Programa para identificar se um string é um número utilizando Int32.TryParse() Método
  4. C# Programa para Identificar se um string é um número utilizando foreach Loop
C# Identificar se uma string é um número

Enquanto lidamos com problemas do mundo real, às vezes, enfrentamos um problema em que queremos tomar a entrada como uma string, mas utilizá-la como um integer. Para tornar isso possível, temos sempre que confirmar se a entrada string é um número ou não.

Em C#, podemos utilizar muitos métodos para identificar se uma string de entrada é um número ou não. Você vai descobrir estes métodos enquanto lê este artigo até o final.

C# Programa para identificar se uma string é um número utilizando Enumerable.All() Método

O método Enumerable.All() pertence ao LINQ. O LINQ é uma parte do C# e é utilizado para acessar diferentes bancos de dados e fontes de dados. Podemos modificar este método para verificar se um string é um número. Passaremos o método char.IsDigit() como parâmetro para o método Enumerable.All().

A sintaxe correta para utilizar este método é a seguinte:

StringName.All(char.IsDigit);

Código de exemplo:

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.");
    }
  }
}

Resultado:

The Given String is a Number.

C# Programa para identificar se um string é um número utilizando Regex.IsMatch() Método

Em C# podemos utilizar expressões regulares para verificar vários padrões. Uma expressão regular é um padrão específico para realizar uma ação específica. Em C#, temos ^[0-9]+$ e ^\d+$ expressões regulares para verificar se um string é um número.

A sintaxe correta para utilizar este método é a seguinte:

Regex.IsMatch(StringName, @"Expression");

Exemplo de código:

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.");
    }
  }
}

Resultado:

The Given String is a Number.

Aqui, o ponto importante é que as duas expressões regulares, ^[0-9]+$ e ^\d+$ não são as mesmas em seu funcionamento. O ^[0-9]+$ é utilizado para os caracteres 0-9 básicos, mas o ^\d+$ é utilizado para Dígito decimal caracteres no Unicode, sem RegexOptions.ECMAScript especificado (padrão). Por exemplo, como 4 em tailandês, também é identificado como um número.

C# Programa para identificar se um string é um número utilizando Int32.TryParse() Método

O método Int32.TryParse()é utilizado para converter o string de números em um inteiro assinado de 32 bits. Se o string não for numérico, não é convertido com sucesso e, portanto, este método retorna falso.

A sintaxe correta para utilizar este método é a seguinte:

Int32.TryParse(StringName, out intvariable);

Aqui intvariable é qualquer variável não-inicializada de integer.

Exemplo de código:

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.");
    }
  }
}

Resultado:

The Given String is a Number.

C# Programa para Identificar se um string é um número utilizando foreach Loop

Este é o processo mais básico para identificar se um string é um número. Neste processo, verificaremos cada caractere da string para ser um número utilizando o laço foreach.

A sintaxe correta para utilizar o laço foreach é a seguinte:

foreach (datatype variablename in somecollection) {
  // steps to iterate
}

Exemplo de código:

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.");
    }
  }
}

Resultado:

The Given String is a Number.

Artigo relacionado - Csharp String