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 *