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 du codage
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 getBytes() méthode :
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
La longueur du tableau d'octets résultant fournit le nombre d'octets pour cet encodage particulier :
int utf8ByteCount = utf8Bytes.length;
int utf16ByteCount = utf16Bytes.length;
Exemple
Considérez la chaîne "Hello World":
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
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 codages, comme UTF-8, peuvent utiliser un codage 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3