Aujourd’hui, nous allons apprendre comment convertir une chaîne de caractères en tableau d’octets en Java. Nous apprendrons également comment convertir un tableau d’octets en chaîne de caractères en Java.
Chaîne de caractères en tableau d’octets
Nous pouvons utiliser la méthode getBytes()
de la classe String pour encoder la chaîne en une séquence d’octets en utilisant le jeu de caractères par défaut de la plateforme. Cette méthode est surchargée et nous pouvons également passer Charset
en argument. Voici un programme simple montrant comment convertir une chaîne de caractères en tableau d’octets en Java.
package com.journaldev.util;
import java.util.Arrays;
public class StringToByteArray {
public static void main(String[] args) {
String str = "PANKAJ";
byte[] byteArr = str.getBytes();
// imprimer les éléments du byte[]
System.out.println("String to byte array: " + Arrays.toString(byteArr));
}
}
L’image ci-dessous montre la sortie lorsque nous exécutons le programme ci-dessus. Nous pouvons également obtenir le tableau d’octets en utilisant le code ci-dessous.
byte[] byteArr = str.getBytes("UTF-8");
Cependant, si nous fournissons le nom du jeu de caractères, alors nous devrons soit attraper l’exception UnsupportedEncodingException
soit la lancer. Une meilleure approche est d’utiliser la classe StandardCharsets
introduite dans Java 1.7 comme indiqué ci-dessous.
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
C’est toutes les différentes façons de convertir une chaîne de caractères en tableau d’octets en Java.
Tableau de bytes Java en String
Jetons un coup d’œil à un programme simple montrant comment convertir un tableau de bytes en String en Java.
package com.journaldev.util;
public class ByteArrayToString {
public static void main(String[] args) {
byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray);
String str1 = new String(byteArray1);
System.out.println(str);
System.out.println(str1);
}
}
L’image ci-dessous montre la sortie produite par le programme ci-dessus. Avez-vous remarqué que je fournis un char lors de la création du tableau de bytes ? Cela fonctionne grâce à l’autoboxing et le char ‘P’ est converti en 80 dans le tableau de bytes. C’est pourquoi la sortie est la même pour la conversion du tableau de bytes en chaîne de caractères. La classe String a également un constructeur où nous pouvons fournir un tableau de bytes et un Charset en argument. Donc le code ci-dessous peut également être utilisé pour convertir un tableau de bytes en String en Java.
String str = new String(byteArray, StandardCharsets.UTF_8);
La classe String a également une méthode pour convertir un sous-ensemble du tableau de bytes en String.
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
Le code ci-dessus est parfaitement valable et la valeur de ‘str’ sera ‘PAN’. C’est tout ce qu’il y a à savoir sur la conversion d’un tableau de bytes en String en Java.
Vous pouvez consulter plus d’exemples de tableaux depuis notre Dépôt GitHub.
Référence: Documentation de l’API getBytes
Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java