C# Identificar se uma string é um número

  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

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

  • Gerar strings alfanuméricas aleatórias em C#
  • Encontre Substring em uma String em C#