【java入門】文字列操作とは?(分割、検索、結合、置換など)

Java文字列操作
目次

Javaの文字列操作とは?

Javaでは、文字列を操作するためのさまざまなメソッドが提供されています。

文字列操作を理解することは、プログラミングにおいて非常に重要です。

この記事では、Javaでの文字列操作の基本から応用までを解説します。

1-1. Javaの文字列の基本

文字列とは、文字の連続した列です。Javaでは、文字列はStringクラスで表現されます。
文字列を作成するには、ダブルクォーテーションで文字列を囲みます。

// 文字列の挨拶を定義
String greeting = "Hello, world!";
新人:グラミちゃん

基本的に文字列操作は、文字列の中の文字や部分文字列を取得したり、操作したりすることなんだ。

エンジニア:プロくん

そうだよ。文字列の基本をしっかり理解することで、より高度な操作もスムーズに行えるようになるよ。

1-2. Javaの文字列の結合

Javaでは、文字列を結合するために+演算子を使用します。

// ユーザーの名と姓を設定
String firstName = "John"; // 名
String lastName = "Doe"; // 姓

// フルネームを作成
String fullName = firstName + " " + lastName;

// フルネームをコンソールに出力
System.out.println(fullName); // 出力: John Doe
新人:グラミちゃん

文字列を結合するときは、+演算子を使うってこと?

エンジニア:プロくん

そう。それによって、複数の文字列を1つにまとめることができるよ。

1-3. Javaの文字列の分割

文字列を特定の文字やパターンで分割するには、split()メソッドを使用します。

// 文字列を定義
String sentence = "This is a sentence.";

// 文字列を空白を区切りとして分割し、単語の配列に格納
String[] words = sentence.split(" ");

// 単語の配列をループ処理して、各単語を出力
for (String word : words) {
    System.out.println(word); // 単語を出力
}
新人:グラミちゃん

split()メソッドを使うことで、文字列を指定した区切り文字で分割できるんだ。

エンジニア:プロくん

そうだよ。分割された部分は配列に格納されるよ。

1-4. Javaの文字列の検索

文字列内で特定の文字や文字列を検索するには、indexOf()contains()などのメソッドを利用します。

// 文字列を定義
String text = "This is a sample text.";

// 文字列内で指定されたサブ文字列の位置を検索し、その位置のインデックスを取得
int index = text.indexOf("sample");

// 文字列内に指定されたサブ文字列が含まれているかを確認
boolean containsText = text.contains("is");

// インデックスを出力
System.out.println(index); // 出力: 10

// 文字列が含まれているかを出力
System.out.println(containsText); // 出力: true
新人:グラミちゃん

検索メソッドを使うと、特定の文字列が含まれているかや、その位置を調べることができるってことなんだ。

エンジニア:プロくん

そうだよ。条件に合致する部分を見つけるのに便利だよ。

1-5. Javaの文字列の置換

文字列内の特定の文字列を別の文字列に置換するには、replace()メソッドを使用します。

// 元の文字列を定義
String original = "I like apples.";

// 文字列内の特定の部分文字列を指定した別の部分文字列に置換
String replaced = original.replace("apples", "oranges");

// 置換後の文字列を出力
System.out.println(replaced); // 出力: I like oranges.
新人:グラミちゃん

replace()メソッドは、指定した文字列を別の文字列で置き換えれるんだ。

エンジニア:プロくん

そうだよ。便利な機能だよ!

1-6. Javaの文字列の切り取り

文字列の一部を切り取るには、substring()メソッドを使用します。

// 文字列を定義
String text = "Hello, world!";

// 指定された開始位置から、文字列の残りの部分を取得
String subString = text.substring(7);

// 取得した部分文字列を出力
System.out.println(subString); // 出力: world!
新人:グラミちゃん

substring()メソッドを使うと、指定した位置から末尾までの部分文字列を取得できるのね。

エンジニア:プロくん

必要な部分だけを取り出すことができるよ。

1-7. Javaの文字列の比較

文字列同士を比較するには、equals()compareTo()などのメソッドを使用します。

// 文字列を定義
String str1 = "abc";
String str2 = "def";

// 文字列の内容が同じかどうかを比較して、結果を出力
System.out.println(str1.equals(str2)); // 出力: false

// 辞書順での比較結果を出力
System.out.println(str1.compareTo(str2)); // 出力: -3
新人:グラミちゃん

文字列同士を比較するときは、注意が必要だね

エンジニア:プロくん

そう。文字列の内容を比較するか、文字列の順序を比較するかによって使い分けます。

1-8. Javaの文字列の変換

文字列を大文字や小文字に変換するには、toUpperCase()toLowerCase()メソッドを使用します。

// 文字列を定義
String text = "Hello, World!";

// 文字列をすべて大文字に変換
String upperCaseText = text.toUpperCase();

// 文字列をすべて小文字に変換
String lowerCaseText = text.toLowerCase();

// 大文字に変換した文字列を出力
System.out.println(upperCaseText); // 出力: HELLO, WORLD!

// 小文字に変換した文字列を出力
System.out.println(lowerCaseText); // 出力: hello, world!
新人:グラミちゃん

大文字や小文字に変換するときは、それぞれのメソッドを使うのか。

エンジニア:プロくん

文字列の形式を統一するのに役立つよ。

1-9. Javaの文字列の形式整形

文字列の前後の余分な空白を除去したり、特定の形式に整形するには、trim()format()メソッドを使用します。

// 空白を含む文字列を定義
String textWithSpaces = "   Hello, World!   ";

// 文字列の両端の空白を削除
String trimmedText = textWithSpaces.trim();

// フォーマット指定子を使用して浮動小数点数を指定桁数でフォーマット
String formattedText = String.format("Value is %.2f", 3.14159);

// 空白を削除した文字列を出力
System.out.println(trimmedText); // 出力: Hello, World!

// フォーマットされた文字列を出力
System.out.println(formattedText); // 出力: Value is 3.14
新人:グラミちゃん

trim()メソッドは、前後の余分な空白を取り除くのね。

エンジニア:プロくん

format()メソッドは、指定された書式に文字列を整形するよ。

1-10. Javaの文字列の操作における注意点

文字列を操作する際には、いくつかの注意点があります。
例えば、文字列はイミュータブル(変更不可)なので、操作を行った場合は新しい文字列が作成されることや、文字列の比較時には==演算子ではなくequals()メソッドを使用することなどです。

// 文字列を定義
String str1 = "Hello";
String str2 = "Hello";

// 文字列の参照を比較して、結果を出力
System.out.println(str1 == str2); // 出力: true (ただし、JVMに依存する場合があります)

// 文字列の内容が等しいかを比較して、結果を出力
System.out.println(str1.equals(str2)); // 出力: true
新人:グラミちゃん

文字列を操作する際には、==演算子ではなくequals()メソッドを使うんですね。

エンジニア:プロくん

そう。==演算子は参照の比較になるので注意が必要だよ。

まとめ

この記事では、Javaでの文字列操作の基本から応用までを解説しました。
文字列操作はプログラミングにおいて非常に重要な要素であり、しっかりと理解することで効率的なプログラミングが可能になります。
是非、これらの方法を活用して、効率的で見やすいコードを書くことができるようになりましょう。

目次