C# Identificar se uma string é um número
-
C# Programa para identificar se uma
stringé um número utilizandoEnumerable.All()Método -
C# Programa para identificar se um
stringé um número utilizandoRegex.IsMatch()Método -
C# Programa para identificar se um
stringé um número utilizandoInt32.TryParse()Método -
C# Programa para Identificar se um
stringé um número utilizandoforeachLoop
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.