Java convertir entero en cadena

J

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.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad