Berechnen der Byteanzahl eines Strings in Java
In Java bestehen Strings aus Zeichen, deren Bytedarstellung je nach variieren kann die gewählte Kodierung. Um die Anzahl der Bytes in einer Zeichenfolge zu bestimmen, muss man die Zeichenkodierung berücksichtigen, die für die Umwandlung in Bytes verwendet wird.
Encoding-Dependent Byte Count
Der Schlüssel zum Verständnis Byteanzahl bedeutet, dass unterschiedliche Codierungen zu unterschiedlichen Bytegrößen für dieselbe Zeichenfolge führen. Beispielsweise erfordert eine in UTF-8 codierte Zeichenfolge möglicherweise 1 Byte pro Zeichen, während eine in UTF-16 codierte Zeichenfolge möglicherweise 2 Bytes pro Zeichen erfordert.
Konvertieren einer Zeichenfolge in Bytes
Um die Byteanzahl zu berechnen, können wir den String mit getBytes() in ein Byte-Array konvertieren. method:
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
Die Länge des resultierenden Byte-Arrays liefert die Byteanzahl für diese bestimmte Codierung:
int utf8ByteCount = utf8Bytes.length;
int utf16ByteCount = utf16Bytes.length;
Beispiel
Betrachten Sie die Zeichenfolge „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
Überlegungen
Bei der Konvertierung von Strings in Bytes ist es wichtig, die gewünschte Zeichenkodierung explizit anzugeben. Das Verlassen auf Standardeinstellungen kann zu unerwarteten Ergebnissen führen, insbesondere wenn mit Sprachen gearbeitet wird, die Nicht-ASCII-Zeichen verwenden.
Beachten Sie außerdem, dass bestimmte Kodierungen, wie z. B. UTF-8, möglicherweise eine Kodierung mit variabler Länge für Zeichen verwenden. Dies bedeutet, dass ein einzelnes Zeichen durch eine unterschiedliche Anzahl von Bytes dargestellt werden kann, was die Bedeutung der Kodierungsauswahl noch weiter unterstreicht.
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