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 utilizandoforeach
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.