Como converter String para Int em C#

Puneet Dobhal 12 outubro 2023
  1. C# string a int Conversão - Int16.Parse() / Int32.Parse() / Int64.Parse() Método
  2. C# string a int Conversão - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Método
  3. Conversão de C# String para Int - Método Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64()
Como converter String para Int em C#

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

Artigo relacionado - Csharp String