Convertir une chaîne en hexadécimal en Java
-
Convertir une chaîne en hexadécimal en utilisant un tableau de
char
etInteger.toHexString()
-
Convertir une chaîne en hexadécimal à l’aide d’un tableau d’
byte
et d’un formateur de chaîne - Convertir une chaîne en hexadécimal à l’aide du codec Apache Commons
Dans cet article, nous allons apprendre à convertir une chaîne en une valeur hexadécimale à l’aide des quatre méthodes illustrées ci-dessous avec des exemples.
Convertir une chaîne en hexadécimal en utilisant un tableau de char
et Integer.toHexString()
La première technique utilise la conversion de la chaîne en un tableau de char
. Nous créons d’abord un objet de StringBuilder()
que nous utilisons pour ajouter les caractères afin de créer toute la chaîne de valeurs hexadécimales. Pour convertir la chaîne en un tableau char
, nous utilisons la commande toCharArray()
. Après cela, nous utilisons une boucle améliorée et la méthode Integer.toHexString()
, qui accepte un seul char
comme argument.
La fonction, Integer.toHexString()
, convertit le char
en hexadécimal, puis nous utilisons la méthode stringBuilder.append()
pour ajouter les chaînes et l’afficher à la sortie.
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());
}
}
Production:
Converted Hex from String: 54686973206973206120737472696e67
Convertir une chaîne en hexadécimal à l’aide d’un tableau d’byte
et d’un formateur de chaîne
Dans cet exemple, nous convertissons d’abord la chaîne en un tableau d’octets getBytesFromString
à l’aide de la fonction getBytes()
. Nous devons passer le charset à l’intérieur de la méthode getBytes()
en tant qu’argument. Une fois que nous obtenons le tableau d’octets, nous créons un objet de BigInteger
, et dans le constructeur, nous passons une valeur int
1 et le tableau d’octets en arguments.
Nous utilisons la méthode String.format()
pour formater les valeurs de l’objet bigInteger
dans une chaîne hexadécimale. Une fois que nous obtenons la chaîne hexadécimale, nous l’imprimons.
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);
}
}
Production:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Convertir une chaîne en hexadécimal à l’aide du codec Apache Commons
Dans la dernière méthode de conversion d’une chaîne en hexadécimal Java, nous utilisons la bibliothèque Apache Commons Codec. Pour inclure la bibliothèque dans notre projet, nous utiliserons la dépendance maven suivante :
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
Comme dans le dernier exemple, nous obtiendrons un tableau de byte
à partir de la chaîne que nous voulons convertir dans ce programme. Ensuite, nous utilisons la classe Hex
de la bibliothèque Apache Commons-Codec et appelons sa méthode statique encodeHexString()
et passons le byteArray
comme argument. On obtient alors la chaîne en retour qui est convertie en hexadécimal.
Nous pouvons utiliser la fonction encodeHex()
au lieu de encodeHexString()
, mais elle renverra un tableau char
que nous devons convertir en chaîne ; cependant, le résultat sera le même.
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);
}
}
Production
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.
LinkedInArticle connexe - Java String
- Comment effectuer une conversion de chaîne en chaîne en Java
- Comment supprimer une sous-chaîne d'une chaîne en Java
- Comment convertir un tableau d'octets en chaîne hexadécimale en Java
- Comment convertir une chaîne Java en octet
- Générer une chaîne aléatoire en Java
- La méthode d'échange à Java