Converti stringa in esadecimale in Java
-
Converti stringa in esadecimale utilizzando l’array di
char
eInteger.toHexString()
-
Converti stringa in esadecimale utilizzando l’array di
byte
e il formattatore di stringhe - Converti stringa in esadecimale utilizzando Apache Commons Codec
In questo articolo impareremo come convertire una stringa in un valore esadecimale utilizzando quattro modi mostrati di seguito con esempi.
Converti stringa in esadecimale utilizzando l’array di char
e Integer.toHexString()
La prima tecnica utilizza la conversione della stringa in un array di char
. Per prima cosa creiamo un oggetto di StringBuilder()
che usiamo per aggiungere i caratteri per creare l’intera stringa di valori esadecimali. Per convertire la stringa in un array char
, usiamo il comando toCharArray()
. Successivamente, utilizziamo un bucle avanzato e il metodo Integer.toHexString()
, che accetta un singolo char
come argomento.
La funzione, Integer.toHexString()
, converte il char
in esadecimale, quindi usiamo il metodo stringBuilder.append()
per aggiungere le stringhe e mostrarlo nell’output.
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());
}
}
Produzione:
Converted Hex from String: 54686973206973206120737472696e67
Converti stringa in esadecimale utilizzando l’array di byte
e il formattatore di stringhe
In questo esempio, convertiamo prima la stringa in un array di byte getBytesFromString
utilizzando la funzione getBytes()
. Dobbiamo passare il set di caratteri all’interno del metodo getBytes()
come argomento. Una volta ottenuto l’array di byte, creiamo un oggetto di BigInteger
e nel costruttore passiamo un valore int
1 e l’array di byte come argomenti.
Usiamo il metodo String.format()
per formattare i valori dell’oggetto bigInteger
in una stringa esadecimale. Una volta ottenuta la stringa esadecimale, la stampiamo.
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);
}
}
Produzione:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Converti stringa in esadecimale utilizzando Apache Commons Codec
Nell’ultimo metodo per convertire una stringa in Java esadecimale, utilizziamo la libreria Apache Commons Codec. Per includere la libreria nel nostro progetto, utilizzeremo la seguente dipendenza Maven:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
Come nell’ultimo esempio, otterremo un array di byte
dalla stringa che vogliamo convertire in questo programma. Quindi usiamo la classe Hex
della libreria Apache Commons-Codec e chiamiamo il suo metodo statico encodeHexString()
e passiamo il byteArray
come argomento. Quindi otteniamo in cambio la stringa che viene convertita in esadecimale.
Possiamo usare la funzione encodeHex()
invece di encodeHexString()
, ma restituirà un array char
che dobbiamo convertire in una stringa; tuttavia, il risultato sarà lo stesso.
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);
}
}
Produzione
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.
LinkedInArticolo correlato - Java String
- Converti array di byte in stringa esadecimale in Java
- Converti stringa Java in byte
- Eseguire la conversione di array da stringa a stringa in Java
- Rimuovi sottostringa dalla stringa in Java
- Confronta le stringhe in Java
- Genera stringa casuale in Java