Comment convertir une chaîne de caractères en Int en C#

Puneet Dobhal 12 octobre 2023
  1. Conversion d’une string en int en C# - Int16.Parse() / Int32.Parse() / Int64.Parse() Méthode
  2. C# string en int Conversion Méthode - Int16.TryParse() / Int32.TryParse() / Int64.TryParse()
  3. C# String en Int Conversion Méthode- Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64()
Comment convertir une chaîne de caractères en Int en C#

La conversion d’une chaîne de caractères en int est une véritable promenade de santé lorsqu’il s’agit de coder en C#, mais il y a certaines choses que vous devez prendre en considération. Dans cet article, nous aborderons quelques-unes des méthodes les plus faciles et les plus recommandées pour y parvenir.

Conversion d’une string en int en C# - Int16.Parse() / Int32.Parse() / Int64.Parse() Méthode

La méthode Parse() peut être utilisée pour convertir la représentation d’une chaîne de caractères d’un nombre en un entier signé équivalent à 16/32/64 bits. Pour des raisons de représentation, nous ne couvrirons plus que les conversions en 32 bits à partir de maintenant.

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);
  }
}

Production:

123

Un léger inconvénient de cette méthode est qu’elle lance une FormatException dans le cas où la chaîne n’est pas une séquence de chiffres.

Bien que Parse() ignore les espaces blancs au début et à la fin de la chaîne, à part cela, tous les caractères doivent avoir une valeur numérique appropriée pour que la conversion soit réussie.

Nous recommandons l’instruction try...catch pour gérer l’exception, comme le montre l’illustration suivante.

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");
    }
  }
}

Production:

Invalid String

C# string en int Conversion Méthode - Int16.TryParse() / Int32.TryParse() / Int64.TryParse()

Considéré comme une alternative appropriée à la méthode Parse(), la méthode TryParse() ne lance pas d’exception en cas d’échec. Elle retourne simplement False en cas d’échec de la conversion, ce qui rend l’implémentation plus simple.

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");
  }
}

Production:

111

C# String en Int Conversion Méthode- Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64()

La méthode Convert() prend la variable chaîne comme paramètre et retourne la valeur numérique équivalente signée à 16/32/64 bits. Comme la méthode Parse(), avec cette méthode vous avez besoin d’une instruction try...catch pour les exceptions.

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");
    }
  }
}

Production:

123

Les exceptions sont coûteuses et ne sont pas considérées comme une bonne pratique à inclure généralement dans le déroulement du programme. Mais parfois, elles peuvent être utiles pour extraire des informations importantes comme la condition de débordement dans la méthode Convert().

Toutes les méthodes ci-dessus sont aussi efficaces les unes que les autres et présentent certains compromis en ce qui concerne leur mise en œuvre. Nous recommandons de choisir la méthode optimale sur la base des considérations que nous avons exposées dans cet article.

Article connexe - Csharp Integer

Article connexe - Csharp String