Calcul du nombre d'octets d'une chaîne en Java
En Java, les chaînes sont composées de caractères dont la représentation en octets peut varier en fonction de l'encodage choisi. Pour déterminer le nombre d'octets dans une chaîne, il faut considérer le codage de caractères utilisé pour sa conversion en octets.
Nombre d'octets dépendant de l'encodage
La clé pour comprendre Le nombre d'octets est que différents codages entraînent des tailles d'octets différentes pour la même chaîne. Par exemple, une chaîne codée en UTF-8 peut nécessiter 1 octet par caractère, tandis qu'une chaîne codée en UTF-16 peut nécessiter 2 octets par caractère.
Conversion d'une chaîne en octets
Pour calculer le nombre d'octets, nous pouvons convertir la chaîne en un tableau d'octets à l'aide de la méthode getBytes() :
<code class="java">byte[] utf8Bytes = string.getBytes("UTF-8"); byte[] utf16Bytes = string.getBytes("UTF-16");</code>
La longueur du tableau d'octets résultant fournit le nombre d'octets pour cet encodage particulier. :
<code class="java">int utf8ByteCount = utf8Bytes.length; int utf16ByteCount = utf16Bytes.length;</code>
Exemple
Considérez la chaîne "Hello World":
<code class="java">String string = "Hello World"; // Print the number of characters in the string System.out.println(string.length()); // 11 // Calculate the byte count for different encodings byte[] utf8Bytes = string.getBytes("UTF-8"); byte[] utf16Bytes = string.getBytes("UTF-16"); byte[] utf32Bytes = string.getBytes("UTF-32"); // Print the byte counts System.out.println(utf8Bytes.length); // 11 System.out.println(utf16Bytes.length); // 24 System.out.println(utf32Bytes.length); // 44</code>
Considérations
Il est essentiel de spécifier explicitement le codage de caractères souhaité lors de la conversion de chaînes en octets. S'appuyer sur les valeurs par défaut peut conduire à des résultats inattendus, en particulier lorsque vous travaillez avec des langages qui utilisent des caractères non-ASCII.
De plus, notez que certains encodages, comme UTF-8, peuvent utiliser un encodage de longueur variable pour les caractères. Cela signifie qu'un seul caractère peut être représenté par un nombre variable d'octets, soulignant encore davantage l'importance de la sélection du codage.
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!