Introducción
Contenido
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 StringBuilder
es 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 avalueOf()
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 unNullPointerException
aunque.String.format(String format, Object... args)
– Devuelve una cadena formateada de acuerdo con el especificador de formato y los siguientes argumentosStringBuilder.append(int i).toString()
– Igual que elvalueOf()
método, este método acepta todos los tipos primitivos con la adición de algunos otros tipos comoString
,StringBuffer
yCharSequence
.
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:
Te puede interesar:Lectura y escritura de CSV en Java con Apache Commons CSV- 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:
Te puede interesar:Leer y escribir CSV en Javaint 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:
Te puede interesar:Cómo enviar correos electrónicos en Java%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.
Te puede interesar:Cómo probar una aplicación Spring Boot