
【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
変数はカンマの位置を表します。
分かりやすく表にまとめて、処理の流れを解説します。
プログラム全体の流れ
line
に"アルゼンチン,ブエノスアイレス"
を代入idx = line.indexOf(',')
でカンマの位置(数値)を取得line.substring(0, idx)
で国名部分を取り出すline.substring(idx + 1)
で首都名部分を取り出す- 結果を出力
idxと文字列の関係表
文字列 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
line | ア | ル | ゼ | ン | チ | ン | , | ブ | エ | ノ | ス | ア | イ | レ | ス |
- idx = 6 ← カンマ
,
の位置
取得される値
変数 | 抜き出す範囲 | 値 |
---|---|---|
nation | 0 〜 idx-1 (0〜5) | アルゼンチン |
capital | idx+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つ含まれている文字列 "日本,東京,関東"
をindexOf
と substring
を使って3つの要素(国名・都市・地方)に分割しています。
まず、各変数の役割と文字列の位置関係を表で解説します。
文字列とインデックス位置の対応表
文字列 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
data | 日 | 本 | , | 東 | 京 | , | 関 | 東 |
idx(カンマの位置)の値
変数名 | 内容 | 取得する値 |
---|---|---|
firstComma | 最初のカンマの位置 | 2 |
secondComma | 2つ目のカンマの位置 | 5 |
substringで抜き出される範囲
変数名 | 開始 | 終了 | 抜き出される文字列 |
---|---|---|---|
country | 0 | 2 | 日本 |
city | 3 | 5 | 東京 |
region | 6 | 最後 | 関東 |
※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を連結 | String | str.concat("追加") |
equals(String str) | 文字列内容が等しいか比較 | boolean | str.equals("テスト") |
indexOf(String str) | 指定文字列の最初の位置を返す | int | str.indexOf("a") |
length() | 文字数を返す | int | str.length() |
substring(int, int) | 指定範囲の部分文字列を取得 | String | str.substring(2, 5) |
toLowerCase() | 小文字に変換 | String | str.toLowerCase() |
toUpperCase() | 大文字に変換 | String | str.toUpperCase() |
trim() | 前後の空白を除去 | String | str.trim() |
まとめ
String
クラスは多彩なメソッドで文字列操作を強力にサポートします。- 文字列の分割、検索、連結、比較、変換などの操作は、メソッドを利用することで簡潔かつ安全に記述できます。