Comment convertir une chaîne de caractères en Int en C#
-
Conversion d’une
string
enint
en C# -Int16.Parse()
/Int32.Parse()
/Int64.Parse()
Méthode -
C#
string
enint
Conversion Méthode -Int16.TryParse()
/Int32.TryParse()
/Int64.TryParse()
-
C#
String
enInt
Conversion Méthode-Convert.ToInt16()
/Convert.ToInt32()
/Convert.ToInt64()
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
- C# Convertir Int en String
- Convertir Int en Enum en C#
- Int aléatoire en C#
- Nombre aléatoire dans une plage en C#
- Division entière en C#
Article connexe - Csharp String
- C# Convert String to enum
- C# Convertir Int en String
- Utiliser des chaînes dans l'instruction Switch en C#
- Comment convertir une chaîne de caractères en booléen en C#
- Comment convertir une chaîne de caractères en un tableau d'octets en C#
- Comment convertir une chaînes de caractères pour qu'elle flotte en C#