Java convertir entero en cadena

    Introducción

    Conversión de una primitiva int, o su respectiva clase contenedora Integer, a un String es una operación común y sencilla. Lo mismo ocurre al revés, convirtiendo un String en Integer.

    Convertir enteros en cadenas

    Al convertir un entero o un entero en una cadena, hay cuatro enfoques. los String La clase proporciona un par de métodos: valueOf() y format() para este propósito, aunque el ya mencionado Integer la clase también ofrece un toString() método que se encarga de este problema. Además, también puede confiar en StringBuilderes append() método, aunque este no es un escenario de uso común:

    • String.valueOf(int i) – Este enfoque se considera la mejor práctica debido a su simplicidad. Este método también acepta otros tipos: boolean, char, char[], double, float, long, Object
    • Integer.toString(int i) – Este enfoque es anterior a valueOf() y simplemente utiliza el método que cada objeto Java tiene para devolver una cadena que representa el int dado. Este enfoque, a diferencia del anterior, puede devolver un NullPointerException aunque.
    • String.format(String format, Object... args) – Devuelve una cadena formateada de acuerdo con el especificador de formato y los siguientes argumentos
    • StringBuilder.append(int i).toString() – Igual que el valueOf() método, este método acepta todos los tipos primitivos con la adición de algunos otros tipos como String, StringBuffer y CharSequence.

    String.valueOf ()

    los valueOf() El método es el método estático de la clase String que devuelve la representación de String del tipo especificado.

    Aquí se permiten muchos tipos:

    • Objeto
    • carbonizarse[]
    • booleano
    • carbonizarse
    • En t
    • largo
    • flotador
    • doble

    Pero nos centraremos en int para este tutorial. La representación devuelta coincide exactamente con la representación devuelta por Integer.toString() al pasar el mismo argumento:

    int i = 12345;
    
    String string = String.valueOf(i);
    String otherString = Integer.toString(i);
    
    System.out.println(string.equals(otherString));
    System.out.println(string == otherString);
    System.out.println(string);
    System.out.println(otherString);
    

    Ejecutar este fragmento de código producirá:

    true
    false
    12345
    12345
    

    Esto tiene sentido ya que ambos métodos devuelven una nueva cadena. los equals() El método devuelve verdadero, porque su valor es el mismo, mientras que == devuelve falso ya que sus variables de referencia no apuntan al mismo objeto en la memoria.

    Utilizando valueOf() mantiene su código consistente en la conversión de un tipo de datos a otro. En el caso de un entero, el valueOf() El método también puede almacenar en caché los números de uso frecuente, por ejemplo, de -127 a 128, para acelerar la conversión y reducir la memoria.

    Por ello, se recomienda utilizar la valueOf() método para la conversión de cadenas y enteros.

    Integer.toString ()

    Este enfoque utiliza uno de los métodos Java más comunes: toString() compartido entre todos los objetos.

    El método tiene muchos usos y merece una explicación detallada. Si desea leer más sobre esto, ¡tenemos un excelente artículo que ya lo cubre!

    En este caso, el método devuelve un objeto String que representa el int especificado. El argumento se convierte en una representación decimal con signo y se devuelve como una cadena:

    int i = 12345;
    
    String string = Integer.toString(i);
    String otherString = new Integer(i).toString();
    
    System.out.println(string.equals(otherString));
    System.out.println(string == otherString);
    System.out.println(string);
    System.out.println(otherString);
    

    Ejecutar este fragmento de código producirá:

    true
    false
    12345
    12345
    

    Si su variable es de tipo primitivo (int), es mejor usar Integer.toString(int) o String.valueOf(int). Pero si su variable ya es una instancia de Integer (clase contenedora del tipo primitivo int), es mejor simplemente invocar su toString() método como se muestra arriba.

    String.format ()

    Devuelve una cadena formateada según el especificador de formato y los siguientes argumentos. Si bien el propósito de este método no es exactamente convertir, sino más bien formatear una cadena, también se puede usar para la conversión.

    Hay bastantes especificadores para elegir:

    • %a – Salida hexadecimal de un número de coma flotante
    • %b – verdadero si no es nulo, falso si es nulo
    • %c – Carácter Unicode
    • %d – Entero decimal
    • %e – Notación científica de un entero decimal
    • %f – Número de coma flotante decimal
    • %g – Igual que el anterior, pero posiblemente científico, según el valor
    • %h – Cadena hexadecimal del valor de retorno hashCode ()
    • %n – Separador de línea
    • %o – Entero octal
    • %s – String
    • %t – Conversión de fecha / hora
    • %x – Cadena hexagonal

    Nos centraremos en %d para este tutorial:

    int i = 12345;
    
    String string = String.format("%d", i);
    
    System.out.println(string);
    

    Ejecutar este fragmento de código producirá:

    12345
    

    los format() método arroja un IllegalFormatConversionException si pasa un tipo incompatible, por ejemplo, pasa Integer para especificador %s, que espera un objeto String.

    Algunos de los especificadores más comunes son %s para String, %d para entero decimal y %n.

    StringBuilder y StringBuffer

    Ambos StringBuffer y StringBuilder son clases que se utilizan para concatenar varios valores en una sola cadena.

    StringBuffer es seguro para subprocesos pero más lento, mientras que StringBuilder no es seguro para subprocesos pero es más rápido.

    int i = 12345;
    
    String string = new StringBuilder().append(i).toString();
    String otherString = new StringBuffer().append(i).toString();
    
    System.out.println(string.equals(otherString));
    System.out.println(string == otherString);
    System.out.println(string);
    System.out.println(otherString);
    

    Ejecutar este fragmento de código producirá:

    true
    false
    12345
    12345
    

    Conclusión

    Hemos cubierto uno de los temas fundamentales de Java y los problemas comunes que enfrentan los desarrolladores: convertir un entero o un entero en una cadena utilizando las herramientas incluidas con el JDK.

     

    Etiquetas:

    Deja una respuesta

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