Al igual que otros lenguajes de programación, en C# podemos convertir strings a int. Hay tres formas de convertirlo y son las siguientes:
- Usando el método de análisis
- Usando el método TryParse
- Usando el método de conversión de ( clase System.Convert )
La string de entrada puede ser cualquier cosa como «10», «10.10», «10GeeksforGeeks», «» (su string puede ser un número, una combinación de caracteres o una string vacía).
Cuando una string determinada es un número o un número de punto flotante, podemos usar directamente cualquiera de los métodos mencionados anteriormente para convertirla de string a int, pero la combinación de caracteres y una string vacía generará un error que debe detectarse mediante un manejo excepcional.
1. Usando el método de análisis
Aquí, estamos calculando el área de un círculo, pero la longitud de entrada dada está en formato de string y, por lo tanto, usamos el método Int32.Parse() para convertir la longitud de string a int (equivalente a un entero con signo de 32 bits).
// C# program to convert string to // integer using Parse Method using System; namespace GeeksforGeeks { class GFG{ // Main Method public static void Main(string[] args) { // Taking a string string l = "10"; // using the Method int length = Int32.Parse(l); // Finding the area of a square int aofs = length * length; Console.WriteLine("Area of a circle is: {0}", aofs); } } }
Producción:
Area of a circle is: 100
Cuando tenemos un valor mayor que Integer: si asigna el valor de valor grande a la string, lo hará a través de OverflowException ya que el tipo de datos int no puede manejar los valores grandes (depende mucho del rango de tipos de datos).
string l="10000000000";
La salida seráSystem.OverflowException: Value was either too large or too small for an Int32.
Cuando tenemos una string vacía: si mantiene la string en blanco, pasará por una excepción de formato del sistema, ya que la entrada está en blanco.
string l="";
El resultado será: System.FormatException: la string de entrada no tenía el formato correcto.
2. Usando el método TryParse
Aquí, hemos utilizado el método TryParse(), la diferencia entre el método Parse() y TryParse() es solo que el método TryParse() siempre devuelve el valor, nunca generará una excepción. Si observa detenidamente el valor de una entrada, muestra claramente que generará una excepción, pero TryParse() nunca arrojará una excepción. Por lo tanto, la salida es cero.
// C# program to convert string to // integer using TryParse Method using System; namespace GeeksforGeeks { class GFG{ // Main Method public static void Main(string[] args) { // Taking a string string l = "10000000000"; int length = 0; // using the method Int32.TryParse(l, out length); // Finding the area of a square int aofs = length * length; Console.WriteLine("Area of a circle is: {0}", aofs); } } }
Producción:
Area of a circle is: 0
3. Usando el método de conversión
Aquí, hemos utilizado el método Convert.ToInt32() , la diferencia en el método Parse() y Convert.ToInt32() es solo que el método Convert.ToInt32() siempre acepta el valor nulo que lo devuelve. Por lo tanto, la salida es cero. Hemos utilizado un manejo excepcional en este ejemplo, por lo tanto, el bloque de prueba arrojará la excepción si ocurre y el bloque de captura aceptará la excepción y escribirá cualquier excepción que ocurra.
// C# program to convert string to // integer using Convert Method using System; namespace GeeksforGeeks { class GFG { // Main Method public static void Main(string[] args) { // Taking a string string l = null; try { int length = Convert.ToInt32(l); // Finding the area of a square int aofs = length * length; Console.WriteLine("Area of a circle is: {0}", aofs); } catch (Exception e) { Console.WriteLine("Unable to convert:Exception:" + e.Message); } } } }
Producción:
Area of a circle is: 0