Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Deeper into String | String応用
Javaクラスとコアメカニクス

bookDeeper into String

メニューを表示するにはスワイプしてください

JavaにおけるStringの実際の仕組み

もともと、JavaのString値はcharの配列として保存されていましたが、後にbyteの配列に変更されました。その理由はメモリ効率です。char2バイトを使用しますが、byte1バイトを使用します。byteを使うことでメモリ使用量が大幅に削減され、文字列がより少ないスペースで保存できるようになりました。

では、Stringはどのようにしてさまざまな文字(非数値文字も含む)を扱うのでしょうか?その仕組みはchar変数と似ています。ASCII tableを利用し、数値データを特定の文字にマッピングすることで、String内で幅広い文字を表現できるようになっています。

次に、String値「Hello」を表す図を見てみましょう。

セルには型byteの要素が含まれており、これらはASCII tableから取得されます。コード上でも、byte変数に格納されている正確なString配列を確認できます。これはgetBytes()メソッドを使用して行えます。

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }

byte の値が上記の図に示されているものと同一であることが確認できます。さらに、興味があれば、ASCII テーブルを参照し、各要素のコードと対応する値を比較することもできます。

この byte[] オブジェクトから取得した String 配列を操作することができます。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  1
some-alt