Javaで文字列を扱う際には、Stringクラスが非常に重要な役割を果たします。Stringクラスは、文字列を格納し、様々な操作を行うためのメソッドを提供しています。
Stringクラスの基本
- 文字列の宣言と代入
String str = "Hello, world!";
のように、変数に文字列を代入することで使用します。
- 文字数の取得
int length = str.length();
length()
メソッドで文字列の長さを取得できます。
- 文字列の結合
String firstName = "太郎";
String lastName = "山田";
String fullName = firstName + " " + lastName;
+演算子で文字列を結合できます。
Stringクラスの主なメソッド
- equalsメソッド
2つの文字列が等しいかどうかを比較します。
if (str1.equals(str2)) { // 文字列が等しい場合の処理 }
- containsメソッド
ある文字列が別の文字列に含まれているかどうかを調べます。
if (str.contains("world")) { // "world"が含まれている場合の処理 }
- indexOfメソッド
特定の文字列が最初に現れるインデックスを取得します。
int index = str.indexOf("world");
- substringメソッド
文字列の一部を抽出します。
String subStr = str.substring(7); // "world!"を抽出
- toUpperCaseメソッド, toLowerCaseメソッド
文字列を大文字または小文字に変換します。 - trimメソッド
文字列の前後の空白を削除します。 - splitメソッド
文字列を指定された区切り文字で分割し、文字列の配列を返します。 - replaceメソッド
文字列内の特定の文字列を別の文字列に置き換えます。
例:文字列を逆順にする
public class ReverseString {
public static void main(String[] args) {
String str = "hello";
String reverseStr = "";
for (int i = str.length() - 1; i >= 0; i--) {
reverseStr += str.charAt(i);
}
System.out.println(reverseStr); // olleh
}
}
文字列を逆順にするので、文字列の最後の文字から順番に取ってつなげればよさそうですね。
文字列から一文字ずつ取ってつなぐので、繰り返し処理を使います。
for (int i = str.length() - 1; i >= 0; i--) {
文字列の最後の文字から一つずつ0まで順に戻っていきます。
str.length()でstrの文字数を取得します。strは「hello」なので、str.length()は5になります。
最後の文字なので5番目ですが、Javaのインデックス(番号)は0から始まるので最後の文字は4番です。そのため、str.length() – 1 としています。
reverseStr += str.charAt(i);
str.charAt(i)でstrのi番目の文字を取得できます。0番から始まるので、4番は「o」です。
reverseStr += str.charAt(i);
reverseStr = reverseStr + str.charAt(i);
この二つは同じ意味なので、reverseStrに取得した文字をつなげています。
for文が終わった時、reverseStrには逆順にした文字列が入っているので、最後にreverseStrを出力しています。
まとめ
Stringクラスは、Javaで文字列を扱う上で最も基本的なクラスです。様々なメソッドが用意されており、柔軟な文字列操作が可能となります。
ポイント
- Stringは不変(immutable)なオブジェクトです。一度作成された文字列は変更できません。
- 文字列の操作を行う際は、新しいStringオブジェクトが生成されます。
- StringBuilderやStringBufferクラスを使うと、より効率的に文字列を操作できます。
さらに詳しく知りたい方へ
- StringBuilder, StringBuffer: 文字列を頻繁に操作する場合に効率的なクラス
- 正規表現: より高度な文字列検索や置換を行うための仕組み
これらの知識を習得することで、より複雑な文字列処理に対応できるようになります。
コメント