Maison  >  Article  >  Java  >  Convertir une chaîne en tableau d'octets à l'aide de la méthode getBytes (encodage) en Java

Convertir une chaîne en tableau d'octets à l'aide de la méthode getBytes (encodage) en Java

WBOY
WBOYavant
2023-08-27 13:13:06747parcourir

Convertir une chaîne en tableau doctets à laide de la méthode getBytes (encodage) en Java

Dans le monde de la programmation Java, vous pouvez convertir une chaîne en tableau d'octets en utilisant la fonction "getBytes()". Le résultat final de ce processus est d'obtenir une représentation sous forme de tableau d'octets de la chaîne de départ, avec le codage spécifié par la spécification de la méthode. Il existe deux manières différentes de convertir une chaîne en tableau d'octets en Java en utilisant la fonction "getBytes()". La première stratégie consiste à utiliser le codage du jeu de caractères par défaut de la JVM, qui est une technique de codage. La deuxième approche dépend du codage du jeu de caractères spécifique fourni et détermine le codage à utiliser en fonction des exigences de l'application en question.

Dans cet article, nous examinerons de plus près les deux méthodes, tout en fournissant également des exemples d'implémentation de code et de sortie pour chaque méthode.

Méthode à utiliser

Cet article traite de trois manières différentes de convertir une chaîne en tableau d'octets en Java.

  • Méthode 1 - La première méthode consiste à utiliser le codage du jeu de caractères par défaut. L'appel de la méthode 'getBytes()' sur un objet chaîne sans aucun codage spécifié entraîne l'utilisation du codage du jeu de caractères par défaut. Cette méthode convient lorsque la conversion ne nécessite pas d'encodage spécifique.

  • Méthode 2 - La deuxième méthode consiste à utiliser un encodage de jeu de caractères spécifique pour la méthode "getBytes()". Cette méthode est utile lorsque la conversion nécessite un codage différent de celui par défaut. Le choix du codage dépend des exigences spécifiques de l'application.

  • Méthode 3 - La troisième méthode utilise la classe `ByteBuffer` en Java. Cette classe fournit des méthodes pour convertir une chaîne en tableau d'octets et vice versa. La classe `Charset` est utilisée pour spécifier l'encodage utilisé pour la conversion. Cette approche peut être utile lorsqu'il s'agit de codages de caractères complexes ou lorsque des conversions plus personnalisables sont requises.

La méthode

getBytes(encoding) prend un paramètre de chaîne de codage, qui spécifie le schéma de codage de caractères à utiliser. Cette méthode renvoie un tableau d'octets représentant la chaîne dans l'encodage spécifié. La syntaxe de cette méthode est la suivante -

Grammaire

byte[] byteArray = str.getBytes(encoding);

Où str est la chaîne à convertir et encoding est le nom du schéma d'encodage.

Algorithme

Pour convertir une chaîne en tableau d'octets en Java, vous pouvez suivre ces étapes -

  • Étape 1 - Obtenez la chaîne que vous souhaitez convertir en tableau d'octets.

  • Étape 2 - Décidez quel encodage utiliser pour la conversion. Si aucun encodage n’est spécifié, l’encodage du jeu de caractères par défaut sera utilisé.

  • Étape 3 - Appelez la méthode "getBytes()" sur l'objet chaîne et passez l'encodage en paramètre. Cela renvoie la représentation sous forme de tableau d'octets de la chaîne.

  • Étape 4 - Enregistrez le tableau d'octets dans une variable pour une utilisation future.

  • Étape 5 - Si la JVM ne prend pas en charge l'encodage spécifié, la méthode "getBytes()" lancera "UnsupportedEncodingException". Vous pouvez utiliser un bloc try-catch pour gérer cette exception.

  • Étape 6 - Imprimez le tableau d'octets dans un format lisible à l'aide de la méthode `Arrays.toString()`.

  • Étape 7 - Si nécessaire, reconvertissez le tableau d'octets en chaîne à l'aide de la méthode "new String(byteArray,encoding)".

  • Étape 8 - Le tableau d'octets converti est maintenant prêt pour une transmission ou un traitement ultérieur.

Notez que des étapes ou des modifications supplémentaires peuvent être nécessaires en fonction des exigences spécifiques de votre candidature.

Méthode 1

Cette méthode de conversion de chaîne en tableau d'octets en Java utilise le codage du jeu de caractères par défaut, qui est le codage utilisé par défaut par la JVM. Cette approche est simple et directe, mais peut ne pas convenir si l'application nécessite un codage spécifique.

Exemple

import java.util.Arrays;

public class StringToByteArray {
   public static void main(String[] args) {
      String str = "Hello, world!";
      byte[] byteArray = str.getBytes();
      System.out.println("Byte array using default charset encoding: " + Arrays.toString(byteArray));
   }
}

Sortie

Byte array using default charset encoding: [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]

Méthode 2

Cette méthode de conversion de chaîne en tableau d'octets en Java nous permet de spécifier un codage de jeu de caractères spécifique à utiliser. Cela nous donne un meilleur contrôle sur le codage utilisé pour la conversion et garantit que le tableau d'octets est compatible avec le système cible.

Vous trouverez ci-dessous le même code de programme.

Exemple

import java.util.Arrays;
import java.io.UnsupportedEncodingException;

public class StringToByteArray {
   public static void main(String[] args) {
      String str = "Hello, world!";
      String encoding = "UTF-16";
      byte[] byteArray = null;
      try {
          byteArray = str.getBytes(encoding);
      } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
      }
      System.out.println("Byte array using " + encoding + " encoding: " + Arrays.toString(byteArray));
   }
}

Sortie

Byte array using UTF-16 encoding: [-2, -1, 0, 72, 0, 101, 0, 108, 0, 108, 0, 111, 0, 44, 0, 32, 0, 119, 0, 111, 0, 114, 0, 108, 0, 100, 0, 33, 0]

Dans cette sortie, nous pouvons voir que le tableau d'octets contient deux octets supplémentaires (-2 et -1) au début par rapport à la méthode d'encodage par défaut. Ces deux octets représentent l'ordre des octets du codage UTF-16.

Méthode 3

Cette méthode de conversion de chaîne en tableau d'octets en Java utilise la classe ByteBuffer pour fournir des méthodes permettant de convertir une chaîne en tableau d'octets et vice versa. Cette méthode est très utile lorsque nous devons effectuer d'autres opérations sur le tableau d'octets en utilisant les méthodes fournies par la classe ByteBuffer.

Exemple

import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Arrays;

public class StringToByteArray {
   public static void main(String[] args) {
      String str = "Hello, world!";
      Charset charset = Charset.forName("UTF-8");
      ByteBuffer byteBuffer = charset.encode(str);
      byte[] byteArray = byteBuffer.array();
      System.out.println("Byte array using ByteBuffer class: " + Arrays.toString(byteArray));
   }
}

Sortie

Byte array using ByteBuffer class: [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 0]

Conclusion

En résumé, la conversion d'une chaîne en tableau d'octets en Java peut être réalisée via la méthode "getBytes()". Il existe deux méthodes, l'une utilisant le codage du jeu de caractères par défaut et l'autre utilisant un codage du jeu de caractères spécifique. Le choix de la méthode dépend des exigences de l'application. La classe "ByteBuffer" peut également être utilisée pour cette conversion, en utilisant la classe "Charset" pour spécifier l'encodage. Nous fournissons des exemples de code détaillés et des résultats pour chaque méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer