【6日でできるJava入門】Stringクラス② メソッド

 JavaのStringクラスは、文字列を扱うための多くの便利なメソッド(機能)が標準で用意されています。これらのメソッドを使うことで、文字列の検索・分割・比較・連結・変換など、さまざまな処理を簡単に実装できます。ここでは、代表的なStringメソッドの使い方と、実践的なサンプルコードを通じて理解を深めます。


1.文字列の分割・検索メソッド

1.1. 文字列を区切り文字で分割する

 たとえば「国名,首都名」という形式の文字列がある場合、「,」の位置を探して、国名と首都名を分割できます。
これはindexOf()substring()を使って実現します。

ファイル名: lesson15_1.java

public class lesson15_1 {
    public static void main(String[] args) {
        String line = "アルゼンチン,ブエノスアイレス";
        int idx = line.indexOf(','); // 「,」の位置を取得
        String nation = line.substring(0, idx);        // 左側(国名)
        String capital = line.substring(idx + 1);      // 右側(首都名)

        System.out.println("国名: " + nation);
        System.out.println("首都名: " + capital);
    }
}

実行結果

国名: アルゼンチン
首都名: ブエノスアイレス

 このJavaプログラムは、文字列 "アルゼンチン,ブエノスアイレス" をカンマ , で分割し、国名と首都名をそれぞれ取得しています。
idx 変数はカンマの位置を表します。
分かりやすくにまとめて、処理の流れを解説します。

プログラム全体の流れ

  1. line"アルゼンチン,ブエノスアイレス" を代入
  2. idx = line.indexOf(',') でカンマの位置(数値)を取得
  3. line.substring(0, idx) で国名部分を取り出す
  4. line.substring(idx + 1) で首都名部分を取り出す
  5. 結果を出力

idxと文字列の関係表

文字列01234567891011121314
line,
  • idx = 6 ← カンマ , の位置

取得される値

変数抜き出す範囲
nation0 〜 idx-1 (0〜5)アルゼンチン
capitalidx+1 〜最後 (7〜)ブエノスアイレス

ポイント解説

  • indexOf(',') はカンマの「位置」(インデックス)を返す(この例だと 6
  • substring(0, idx) で0〜5文字目を取得(アルゼンチン
  • substring(idx+1) で7文字目以降を取得(ブエノスアイレス

このようにidxは「区切り文字」の位置を取得して、国名と首都名の分割に使われています。

1.2. 複数の区切り文字がある場合

 複数の区切りが含まれる文字列(例:"日本,東京,関東")で、2番目や3番目の区切り文字の位置を取得したい場合は、第2引数付きのindexOf()を使います。

ファイル名: lesson15_2.java

public class lesson15_2 {
    public static void main(String[] args) {
        String data = "日本,東京,関東";
        int firstComma = data.indexOf(',');
        int secondComma = data.indexOf(',', firstComma + 1);

        String country = data.substring(0, firstComma);
        String city = data.substring(firstComma + 1, secondComma);
        String region = data.substring(secondComma + 1);

        System.out.println("国名: " + country);
        System.out.println("都市: " + city);
        System.out.println("地方: " + region);
    }
}

実行結果

国名: 日本
都市: 東京
地方: 関東

このプログラムでは、カンマ(,)が2つ含まれている文字列 "日本,東京,関東"
indexOfsubstring を使って3つの要素(国名・都市・地方)に分割しています。

まず、各変数の役割と文字列の位置関係をで解説します。

文字列とインデックス位置の対応表

文字列01234567
data,,

idx(カンマの位置)の値

変数名内容取得する値
firstComma最初のカンマの位置2
secondComma2つ目のカンマの位置5

substringで抜き出される範囲

変数名開始終了抜き出される文字列
country02日本
city35東京
region6最後関東

※substringの第二引数は「その位置の直前まで」を抜き出します。


2.その他の主要なStringメソッド

2.1. concat(連結)

2つの文字列を結合して、新しい文字列を作成します。

ファイル名: lesson15_3.java

public class lesson15_3 {
    public static void main(String[] args) {
        String str1 = "Java";
        String str2 = str1.concat("プログラミング");
        System.out.println(str2); // Javaプログラミング
    }
}

実行結果

Javaプログラミング

2.2. length(長さ)

文字列の長さ(文字数)を取得します。

ファイル名: lesson15_4.java

public class lesson15_4 {
    public static void main(String[] args) {
        String msg = "サンプル";
        int len = msg.length();
        System.out.println("文字数: " + len); // 文字数: 4
    }
}

実行結果

文字数: 4

2.3. equals(比較)

2つの文字列が同じ内容かどうかを比較し、結果をbooleanで返します。

ファイル名: lesson15_5.java

public class lesson15_5 {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "Hello";
        String c = "World";

        System.out.println(a.equals(b)); // true
        System.out.println(a.equals(c)); // false
    }
}

実行結果

true
false

2.4. toUpperCase / toLowerCase(大文字・小文字変換)

すべて大文字・小文字に変換します。

ファイル名: lesson15_6.java

public class lesson15_6 {
    public static void main(String[] args) {
        String word = "Java Programming";
        System.out.println(word.toUpperCase()); // JAVA PROGRAMMING
        System.out.println(word.toLowerCase()); // java programming
    }
}

実行結果

JAVA PROGRAMMING
java programming

2.5. trim(前後の空白削除)

先頭・末尾のスペースなどを削除します。

ファイル名: lesson15_7.java

public class lesson15_7 {
    public static void main(String[] args) {
        String raw = "   サンプル テキスト   ";
        System.out.println(raw.trim()); // サンプル テキスト
    }
}

実行結果

サンプル テキスト

3.代表的なStringメソッド一覧

メソッド機能戻り値
concat(String str)末尾に文字列strを連結Stringstr.concat("追加")
equals(String str)文字列内容が等しいか比較booleanstr.equals("テスト")
indexOf(String str)指定文字列の最初の位置を返すintstr.indexOf("a")
length()文字数を返すintstr.length()
substring(int, int)指定範囲の部分文字列を取得Stringstr.substring(2, 5)
toLowerCase()小文字に変換Stringstr.toLowerCase()
toUpperCase()大文字に変換Stringstr.toUpperCase()
trim()前後の空白を除去Stringstr.trim()

まとめ

  • Stringクラスは多彩なメソッドで文字列操作を強力にサポートします。
  • 文字列の分割、検索、連結、比較、変換などの操作は、メソッドを利用することで簡潔かつ安全に記述できます。