Convertir cadena a hexadecimal en Java
-
Convierta una cadena en hexadecimal utilizando un array de
char
yInteger.toHexString()
-
Convierta una cadena en hexadecimal utilizando un array de
bytes
y un formateador de cadena - Convertir cadena a hexadecimal con el códec Apache Commons
En este artículo, aprenderemos cómo convertir una cadena en un valor hexadecimal usando cuatro formas que se muestran a continuación con ejemplos.
Convierta una cadena en hexadecimal utilizando un array de char
y Integer.toHexString()
La primera técnica utiliza la conversión de la cadena en un array de char
. Primero creamos un objeto de StringBuilder()
que usamos para agregar los caracteres para crear la cadena completa de valores hexadecimales. Para convertir la cadena en un array char
, usamos el comando toCharArray()
. Después de eso, usamos un bucle mejorado y el método Integer.toHexString()
, que acepta un solo char
como argumento.
La función, Integer.toHexString()
, convierte el char
a hexadecimal, y luego usamos el método stringBuilder.append()
para agregar las cadenas y mostrarlo en la salida.
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "This is a string";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
StringBuilder stringBuilder = new StringBuilder();
char[] charArray = str.toCharArray();
for (char c : charArray) {
String charToHex = Integer.toHexString(c);
stringBuilder.append(charToHex);
}
System.out.println("Converted Hex from String: " + stringBuilder.toString());
}
}
Producción :
Converted Hex from String: 54686973206973206120737472696e67
Convierta una cadena en hexadecimal utilizando un array de bytes
y un formateador de cadena
En este ejemplo, primero convertimos la cadena en un array de bytes getBytesFromString
usando la función getBytes()
. Tenemos que pasar el juego de caracteres dentro del método getBytes()
como argumento. Una vez que obtenemos el array de bytes, creamos un objeto de BigInteger
, y en el constructor, pasamos un valor int
1 y el array de bytes como argumentos.
Usamos el método String.format()
para formatear los valores del objeto bigInteger
en una cadena hexadecimal. Una vez que obtenemos la cadena hexadecimal, la imprimimos.
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] getBytesFromString = str.getBytes(StandardCharsets.UTF_8);
BigInteger bigInteger = new BigInteger(1, getBytesFromString);
String convertedResult = String.format("%x", bigInteger);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
Producción :
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Convertir cadena a hexadecimal con el códec Apache Commons
En el último método para convertir una cadena a Java hexadecimal, usamos la biblioteca Apache Commons Codec. Para incluir la biblioteca en nuestro proyecto, usaremos la siguiente dependencia de maven:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
Como en el último ejemplo, obtendremos un array de byte
de la cadena que queremos convertir en este programa. Luego usamos la clase Hex
de la biblioteca Apache Commons-Codec y llamamos a su método estático encodeHexString()
y pasamos el byteArray
como su argumento. Luego obtenemos la cadena a cambio que se convierte en hexadecimal.
Podemos usar la función encodeHex()
en lugar de encodeHexString()
, pero devolverá un array char
que tenemos que convertir en una cadena; sin embargo, el resultado será el mismo.
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Hex;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] byteArray = str.getBytes(StandardCharsets.UTF_8);
String convertedResult = Hex.encodeHexString(byteArray);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
Producción
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java String
- Cómo eliminar la subcadena de la cadena en Java
- Cómo realizar una conversión de cadena a cadena en Java
- Cómo convertir un array de bytes en una cadena hexadecimal en Java
- Cómo convertir una cadena de Java en un byte
- Generar cadena aleatoria en Java
- El método Swap en Java