Zählen von String-Bytes in Java
In Java sind Strings eine Sammlung von Zeichen, die eine variable Anzahl von Bytes enthalten können. Die Anzahl der Bytes, die eine Zeichenfolge einnimmt, hängt vom Zeichensatz ab, der für die Codierung verwendet wurde.
Ermitteln der Anzahl codierter Bytes
Um die Anzahl der Bytes in einer Zeichenfolge zu bestimmen, Sie können es mit der Methode getBytes() in ein Byte-Array konvertieren. Diese Methode verwendet ein Codierungsformat als Argument und gibt ein Byte-Array zurück, das mit der codierten Zeichenfolge gefüllt ist. Die Länge des Arrays stellt die Anzahl der Bytes in der codierten Zeichenfolge dar.
Beispiel:
String string = "Hello World";
// Get UTF-8 encoded byte count
byte[] utf8Bytes = string.getBytes("UTF-8");
System.out.println(utf8Bytes.length); // prints 11
// Get UTF-16 encoded byte count
byte[] utf16Bytes = string.getBytes("UTF-16");
System.out.println(utf16Bytes.length); // prints 24
// Get UTF-32 encoded byte count
byte[] utf32Bytes = string.getBytes("UTF-32");
System.out.println(utf32Bytes.length); // prints 44
Kodierungsvariationen
Wie Sie dem Beispiel entnehmen können, kann sogar eine ASCII-Zeichenfolge wie „Hello World“ je nach Kodierung unterschiedliche Bytezahlen haben verwendet.
Zeichensätze
Beim Codieren einer Zeichenfolge ist es wichtig, den richtigen Zeichensatz auszuwählen. Unterschiedliche Zeichensätze verwenden unterschiedliche Methoden, um Zeichen als Bytes darzustellen, was zu unterschiedlichen Bytezahlen führt.
Standardzeichensatz
Wenn Sie keinen Zeichensatz angeben, Java verwendet den Standardzeichensatz der Plattform. Es ist jedoch ratsam, sich nicht auf Standardwerte zu verlassen und den Zeichensatz explizit anzugeben, um konsistente Ergebnisse zu gewährleisten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3