Como converter String para Int em C#
-
C#
string
aint
Conversão -Int16.Parse()
/Int32.Parse()
/Int64.Parse()
Método -
C#
string
aint
Conversão -Int16.TryParse()
/Int32.TryParse()
/Int64.TryParse()
Método -
Conversão de C#
String
paraInt
- 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#