Diferentes formas de convertir String a Integer en C#

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

Publicación traducida automáticamente

Artículo escrito por support3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *