Konvertieren Sie String in Hex in Java
-
Konvertieren Sie String in Hex, indem Sie Array von
char
undInteger.toHexString()
verwenden -
Konvertieren Sie String in Hex mit Array von
byte
und String Formatter - Konvertieren von String in Hex mit Apache Commons Codec
In diesem Artikel erfahren Sie, wie Sie eine Zeichenkette mithilfe von vier Methoden in einen hexadezimalen Wert konvertieren, die unten mit Beispielen gezeigt werden.
Konvertieren Sie String in Hex, indem Sie Array von char
und Integer.toHexString()
verwenden
Die erste Technik verwendet die Konvertierung des Strings in ein Array von char
. Wir erstellen zuerst ein Objekt von StringBuilder()
, mit dem wir die Zeichen anhängen, um die gesamte Zeichenkette von Hex-Werten zu erstellen. Um den String in ein char
-Array umzuwandeln, verwenden wir den Befehl toCharArray()
. Danach verwenden wir eine erweiterte Schleife und die Methode Integer.toHexString()
, die ein einzelnes char
als Argument akzeptiert.
Die Funktion Integer.toHexString()
wandelt char
in hexadezimal um, und dann verwenden wir die Methode stringBuilder.append()
, um die Strings anzuhängen und der Ausgabe anzuzeigen.
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());
}
}
Ausgabe:
Converted Hex from String: 54686973206973206120737472696e67
Konvertieren Sie String in Hex mit Array von byte
und String Formatter
In diesem Beispiel konvertieren wir zuerst den String in ein Array von Bytes getBytesFromString
mit der Funktion getBytes()
. Wir müssen den Zeichensatz innerhalb der Methode getBytes()
als Argument übergeben. Sobald wir das Byte-Array erhalten haben, erstellen wir ein Objekt von BigInteger
und übergeben im Konstruktor einen int
-Wert 1 und das Byte-Array als Argumente.
Wir verwenden die Methode String.format()
, um die bigInteger
-Objektwerte in einen Hex-String zu formatieren. Sobald wir die Hex-Zeichenkette erhalten haben, drucken wir sie aus.
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);
}
}
Ausgabe:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Konvertieren von String in Hex mit Apache Commons Codec
Bei der letzten Methode zum Konvertieren einer Zeichenkette in Hex-Java verwenden wir die Apache Commons Codec-Bibliothek. Um die Bibliothek in unser Projekt aufzunehmen, verwenden wir die folgende Maven-Abhängigkeit:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
Wie im letzten Beispiel erhalten wir ein Array von byte
aus dem String, den wir in diesem Programm konvertieren möchten. Dann verwenden wir die Klasse Hex
der Apache Commons-Codec-Bibliothek und rufen deren statische Methode encodeHexString()
auf und übergeben das byteArray
als Argument. Wir erhalten dann den String zurück, der in Hex umgewandelt wird.
Wir können die Funktion encodeHex()
anstelle von encodeHexString()
verwenden, aber sie gibt ein char
-Array zurück, das wir in einen String umwandeln müssen; das Ergebnis wird jedoch das gleiche sein.
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);
}
}
Ausgabe
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.
LinkedInVerwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java