Cómo convertir la cadena en Int en C#
-
Conversión de C#
string
aint
-Int16.Parse()
/Int32.Parse()
/Int64.Parse()
Método -
Conversión de C#
string
aint
-Int16.TryParse()
/Int32.TryParse()
/Int64.TryParse()
Método -
C# Conversión de
String
aInt
-Convert.ToInt16()
/Convert.ToInt32()
/Convert.ToInt64()
Método
Convertir una cadena a int es un paseo en el parque cuando se trata de codificar en C#, pero hay ciertas cosas que debes considerar. En este artículo, cubriremos algunos de los métodos más fáciles y recomendados para lograrlo.
Conversión de C# string
a int
- Int16.Parse()
/ Int32.Parse()
/ Int64.Parse()
Método
El método Parse()
puede utilizarse para convertir una representación de cadena de un número en un entero equivalente con signo de 16/32/64 bits. Para propósitos de representación, sólo cubriremos conversiones de 32 bits de aquí en adelante.
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);
}
}
Producción :
123
Una ligera desventaja de usar este método es que lanza una FormatException
en caso de que la cadena no sea una secuencia de dígitos.
Aunque Parse()
ignora los espacios en blanco al principio y al final de la cadena, aparte de eso, todos los caracteres deben tener un valor numérico apropiado para que la conversión tenga éxito.
Recomendamos la frase try...catch
para manejar la excepción, como se muestra en la siguiente ilustración.
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");
}
}
}
Producción :
Invalid String
Conversión de C# string
a int
- Int16.TryParse()
/ Int32.TryParse()
/ Int64.TryParse()
Método
Considerado como una alternativa adecuada al método Parse()
, el método TryParse()
no lanza una excepción en caso de fallo. En su lugar, sólo devuelve False
si la conversión falla, haciendo la implementación más 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");
}
}
Producción :
111
C# Conversión de String
a Int
- Convert.ToInt16()
/ Convert.ToInt32()
/ Convert.ToInt64()
Método
El método Convert()
toma como parámetro una variable de cadena y devuelve el valor numérico equivalente con signo de 16/32/64 bits. Similar al método Parse()
, con este método necesitas una sentencia try...catch
para las excepciones.
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");
}
}
}
Producción :
123
Las excepciones son caras y no se consideran una buena práctica generalmente para incluirlas en el flujo del programa. Pero a veces pueden ser útiles para extraer información importante como la condición de desbordamiento en el método Convert()
.
Todos los métodos anteriores son igualmente efectivos y tienen ciertas compensaciones cuando se trata de la implementación. Recomendamos elegir el óptimo en base a las consideraciones que hemos expuesto en este artículo.
Artículo relacionado - Csharp Integer
- C# Convertir la Int a Cadena
- Convertir Int en Enum en C#
- Int aleatoria en C#
- Número aleatorio en un rango en C#
- División entera en C#