Konvertieren Sie String in Hex in Java

Rupam Yadav 12 Oktober 2023
  1. Konvertieren Sie String in Hex, indem Sie Array von char und Integer.toHexString() verwenden
  2. Konvertieren Sie String in Hex mit Array von byte und String Formatter
  3. Konvertieren von String in Hex mit Apache Commons Codec
Konvertieren Sie String in Hex in Java

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 Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java String

Verwandter Artikel - Java Hex