Java での文字列のバイト数の計算
Java では、文字列は文字で構成されており、文字列のバイト表現は次のように異なります。選択したエンコーディング。文字列内のバイト数を決定するには、バイトへの変換に使用される文字エンコーディングを考慮する必要があります。
エンコーディングに依存するバイト数
理解の鍵バイト数とは、エンコーディングが異なると、同じ文字列でもバイト サイズが異なることを意味します。たとえば、UTF-8 でエンコードされた文字列は 1 文字あたり 1 バイトを必要とする場合がありますが、UTF-16 でエンコードされた文字列は 1 文字あたり 2 バイトが必要になる場合があります。
文字列をバイトに変換する
バイト数を計算するには、getBytes() メソッドを使用して文字列をバイト配列に変換できます。
<code class="java">byte[] utf8Bytes = string.getBytes("UTF-8"); byte[] utf16Bytes = string.getBytes("UTF-16");</code>
結果のバイト配列の長さによって、その特定のエンコーディングのバイト数が得られます。 :
<code class="java">int utf8ByteCount = utf8Bytes.length; int utf16ByteCount = utf16Bytes.length;</code>
例
文字列「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>
考慮事項
文字列をバイトに変換する場合は、目的の文字エンコーディングを明示的に指定することが重要です。デフォルトに依存すると、特に非 ASCII 文字を使用する言語を使用する場合に、予期しない結果が生じる可能性があります。
また、UTF-8 などの特定のエンコーディングでは、文字に可変長エンコーディングが使用される場合があることに注意してください。これは、単一の文字がさまざまなバイト数で表現できることを意味し、エンコード選択の重要性がさらに強調されます。
以上がJava 文字列は何バイトを占めますか?その答えがそのエンコーディングに依存するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。