English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La méthode getBytes() de String en Java encode une chaîne en séquence de bytes et la stocke dans un tableau de bytes.
La syntaxe de la méthode getBytes() de String en Java :
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
La méthode getBytes() retourne un tableau de bytes.
Si aucun paramètre n'est passé, getBytes() utilise le jeu de caractères par défaut du système pour encoder la chaîne.
import java.util.Arrays; class Main {}} public static void main(String[] args) { String str = "Java"; byte[] byteArray; //Conversion d'une chaîne en tableau de bytes //Utilisation du jeu de caractères par défaut du système byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); } }
Output result
[74, 97, 118, 97]
Note:Dans l'exemple ci-dessus, nous avons utilisé la classe Arrays pour imprimer les tableaux de bytes de manière lisible. Elle est indépendante de getBytes().
Voici d'autres méthodes disponibles dans CharsetJava :
UTF-8 - Format de conversion UCS d'octet
UTF-16 - Format de conversion UCS de seize bits
UTF-16BE - Format de conversion UCS de seize bits, ordre des octets de début
UTF-16LE - Format de conversion UCS de seize bits, ordre des octets de fin
US-ASCII - ASCII de sept bits
ISO-8859-1 - ISO latine1Code
import java.util.Arrays; import java.nio.charset.Charset; class Main {}} public static void main(String[] args) { String str = "Java"; byte[] byteArray; //Utilisation de UTF-8编码 byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); //Utilisation de UTF-16编码 byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); } }
Output result
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
Note:Dans le programme ci-dessus, nous avons importé java.nio.charset.Charset pour utiliser Charset. Et nous avons importé la classe Arrays pour imprimer les tableaux de bytes de manière lisible.
On peut également utiliser une chaîne pour spécifier le type de codage de getBytes(). Lorsque getBytes() est utilisé de cette manière, il est nécessaire d'encadrer le code dansdans un bloc try ... catch.
import java.util.Arrays; class Main {}} public static void main(String[] args) { String str = "Java"; byte[] byteArray; try { byteArray = str.getBytes("UTF-8 System.out.println(Arrays.toString(byteArray)); byteArray = str.getBytes("UTF-16 System.out.println(Arrays.toString(byteArray)); //Incorrect encoding //Throw an exception byteArray = str.getBytes("UTF-34 System.out.println(Arrays.toString(byteArray)); }) catch (Exception e) { System.out.println(e + "encoding is wrong"); } } }
Output result
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97] java.io.UnsupportedEncodingException: UTF-34 encoding is wrong
Note:We have imported java.util.Arrays to print the byte array in a readable format. It is unrelated to getBytes().