前回の Java Basics シリーズでは、Java の中核となる概念、特にオブジェクト指向の基礎について説明しました。 Java Advanced では、Java の基礎を補足し、アプリケーション レベルに進みます。
ほとんどのプログラミング言語は文字列を扱うことができます。文字列は、「Hello World!」など、順序付けられた文字のコレクションです。 Java では、文字列は String クラス オブジェクトとして格納されます。文字列オブジェクトのメソッドを呼び出すと、文字列関連の操作を実装できます。
Stringクラスはjava.langパッケージに含まれています。このパッケージは Java の起動時に自動的にインポートされるため、組み込みクラスとして使用できます。 String クラスを導入するために明示的に import を使用する必要はありません。
文字列の作成
以前はクラスを使用してオブジェクトを作成しました。 String クラス オブジェクトの作成には new キーワードは必要ないことに注意してください。例えば:
次のようにコードをコピーします。
パブリッククラステスト
{
public static void main(String[] args)
{
文字列 s = "Hello World!";
System.out.println;
}
}
実際、「Hello World」式を作成すると、オブジェクトはすでにメモリ内に作成されています。 new String("Hello World!") を使用すると、文字列オブジェクトが繰り返し作成されます。
オブジェクト
String クラスは、オブジェクトの作成に new キーワードを必要としない唯一のクラスです。使用する際には注意が必要です。
文字列操作
+ を使用して文字列を連結できます。次に例を示します。
次のようにコードをコピーします。
"abc" + s
文字列操作はほとんどの場合、次のメソッドなど、対応する文字列メソッドを通じて実装されます。
次のようにコードをコピーします。
手法の効果
s.length() は文字列の長さを返します
s.charAt(2) は、s 文字列内の添え字 2 を持つ文字を返します。
s.substring(0, 4) は、s 文字列内の添字 0 ~ 4 を含む部分文字列を返します。
s.indexOf("Hello") は、部分文字列「Hello」のインデックスを返します。
s.startsWith(" ") は、s がスペースで始まるかどうかを決定します
s.endsWith("oo") は、s が "oo" で終わるかどうかを決定します。
s.equals("Good World!") は、s が "Good World!" に等しいかどうかを判断します。
== は、文字列が同じ場所に保存されているかどうかのみを判断できます。文字列の内容が同じかどうかを判断するには、equals() を使用する必要があります。
s.compareTo("Hello Nerd!") は、 s 文字列を辞書内の「Hello Nerd!」の順序と比較します。
整数を返します。<0 の場合は、s が「Hello Nerd!」より前にあることを意味します。
>0 の場合、s が「Hello Nerd!」の後であることを意味します。
==0 の場合、s が「Hello Nerd!」に等しいことを意味します。
s.trim() は s の前後のスペース文字列を削除し、新しい文字列を返します。
s.toUpperCase() は s を大文字に変換し、新しい文字列を返します
s.toLowerCase() は s を小文字に変換し、新しい文字列を返します
s.replace("World", "Universe") は、「World」を「Universe」に置き換えて、新しい文字列を返します。
不変オブジェクト
String クラスのオブジェクトは不変オブジェクトです。プログラマは既存の不変オブジェクトを変更できません。インターフェイスがデータを変更するメソッドを提供しない限り、不変オブジェクトを自分で作成することもできます。
ただし、String クラス オブジェクトには、replace() などの文字列を編集するための関数があります。これらの編集機能は、元のオブジェクトを変更するのではなく、新しいオブジェクトを作成することによって実装されます。例えば:
次のようにコードをコピーします。
s = s.replace("ワールド", "ユニバース");
右側の s.replace() の呼び出しは、新しい文字列「Hello Universe!」を作成し、そのオブジェクト (への参照) を返します。代入により、参照 s は新しい文字列を指すようになります。元の文字列「Hello World!」への参照が他にない場合、元の文字列オブジェクトはガベージ コレクションされます。
不変オブジェクト
Java API
Java は多くの強力なパッケージを提供します。 Java 学習の重要な側面は、これらのパッケージとそれに含まれる API (アプリケーション プログラミング インターフェイス) を理解することです。 String クラスは java.lang.String で定義されます。このクラスの公式ドキュメントを見つけるには、次の Oracle Web サイトに問い合わせることができます。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
このドキュメントには、String クラスの最も包括的な概要が含まれています。
実際、API ドキュメントには豊富なコンテンツがあり、以下のリンクで概要を確認できます。
http://docs.oracle.com/javase/6/docs/api/