Como converter String para Int em C#
-
C#
stringaintConversão -Int16.Parse()/Int32.Parse()/Int64.Parse()Método -
C#
stringaintConversão -Int16.TryParse()/Int32.TryParse()/Int64.TryParse()Método -
Conversão de C#
StringparaInt- MétodoConvert.ToInt16()/Convert.ToInt32()/Convert.ToInt64()
Há certas coisas que você deve considerar ao converter uma string para int. Neste artigo, cobriremos alguns dos métodos mais fáceis e recomendados para conseguir isto.
C# string a int Conversão - Int16.Parse() / Int32.Parse() / Int64.Parse() Método
O método Parse() pode ser utilizado para converter uma representação em string de um número para um inteiro equivalente a 16/32/64 bit assinado. Para fins de representação, cobriremos apenas as conversões de 32 bits a partir daqui.
using System;
public class Instance {
public static void Main() {
string str_var = "123";
int num_var = Int32.Parse(str_var);
System.Console.WriteLine(num_var);
}
}
Resultado:
123
Uma ligeira desvantagem da utilização deste método é que ele lança uma FormatException no caso de a string não ser uma seqüência de dígitos.
Embora Parse() ignore os espaços brancos no início e no final da string, além disso, todos os caracteres devem ser de valor numérico apropriado para uma conversão bem sucedida.
Recomendamos a expressão try...catch para lidar com a exceção, como descrito nos códigos a seguir.
using System;
public class Instance {
public static void Main() {
string str_var = "abc";
try {
int num_var = Int32.Parse(str_var);
System.Console.WriteLine(num_var);
} catch (FormatException) {
System.Console.WriteLine("Invalid String");
}
}
}
Resultado:
Invalid String
C# string a int Conversão - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Método
Considerado como uma alternativa adequada ao método Parse(), o método TryParse() não lança uma exceção em caso de falha. Em vez disso, ele apenas devolve False se a conversão falhar, tornando a implementação mais simples.
using System;
public class Instance {
public static void Main() {
bool result;
string str_var = "111";
int num_var;
result = Int32.TryParse(str_var, out num_var);
if (result)
System.Console.WriteLine(num_var);
else
System.Console.WriteLine("Invalid String");
}
}
Resultado:
111
Conversão de C# String para Int - Método Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64()
O método Convert() toma a variável string como parâmetro e retorna o valor numérico equivalente a 16/32/64 bit assinado. Semelhante ao método Parse(), com este método você precisa de uma declaração de try...catch para exceções.
using System;
public class Instance {
public static void Main() {
string str_var = "123";
try {
int num_var = Convert.ToInt32(str_var);
System.Console.WriteLine(num_var);
} catch (FormatException) {
Console.WriteLine("Invalid String");
} catch (OverflowException) {
Console.WriteLine("The string cannot fit in 32 bit value");
}
}
}
Resultado:
123
As exceções são caras e não são consideradas uma boa prática geralmente a ser incluída no fluxo do programa. Mas às vezes elas podem ser úteis para extrair informações importantes como a condição de transbordo no método Convert().
Todos os métodos acima são igualmente eficazes e têm certos trade-offs quando se trata de implementação. Recomendamos escolher o ótimo com base em considerações que expusemos neste artigo.
Artigo relacionado - Csharp Integer
- C# Converter Int a String
- Converter Int em Enum em C#
- Número aleatório em um intervalo em C#
- Random Int em C#
- Converter Int em Hex em C#