English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

Java Flow Control

Java Array

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

Gestion des exceptions Java

Java List (List)

Java Queue (queue)

Java Map collection

Java Set collection

Java entrée/sortie (I/O)

Lecteur Java/Écrivain

Autres sujets Java

Utilisation et exemples de la méthode getBytes() de String en Java

Java String (string) methods

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.

1.getBytes() sans aucun paramètre

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.

Exemple : getBytes() sans aucun paramètre

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().

2.getBytes() avec un paramètre Charset

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

Exemple : getBytes() avec un paramètre Charset

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.

3.getBytes() avec un paramètre de chaîne

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.

Exemple : getBytes() avec un paramètre de chaîne

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().

Java String (string) methods