Java の文字列(String)を扱う基本操作
新人
「Java で文字を扱う方法を知りたいのですが、どうすればいいですか?」
先輩
「Java では、文字列を扱うために String クラスを使うよ。プログラムで文章や名前を扱うときに欠かせないデータ型なんだ。」
新人
「具体的にはどうやって使うんですか?」
先輩
「それじゃあ、基本的な使い方を見ていこう!」
1. 文字列(String)とは?(基本的な説明)
Java では、文字の集まりを String 型として扱います。例えば、名前やメッセージ、文章などは String を使って管理します。
String の特徴
- 文字列を扱うためのデータ型
- 文字の集まりを "(ダブルクォーテーション)で囲んで表す
- 文字列は変更できない(イミュータブル)
例えば、次のように String 型の変数を使って文字列を扱うことができます。
public class StringExample {
public static void main(String[] args) {
String message = "こんにちは、Java!";
System.out.println(message);
}
}
2. 文字列の宣言と代入(String の基本的な使い方)
Java で String 型の変数を使うには、次のように宣言します。
String 型の変数の宣言
変数を宣言するには、String をデータ型として指定し、変数名をつけます。
public class StringDeclaration {
public static void main(String[] args) {
// 文字列の宣言と代入
String name = "田中";
String greeting = "こんにちは";
System.out.println(greeting + "、" + name + "さん!");
}
}
文字列の代入
変数に新しい文字列を代入すると、以前の文字列とは別の新しいデータになります。
public class StringAssignment {
public static void main(String[] args) {
String message = "おはよう";
System.out.println("変更前: " + message);
// 新しい文字列を代入
message = "こんばんは";
System.out.println("変更後: " + message);
}
}
文字列の結合
文字列同士をつなげるには、「+」演算子を使います。
public class StringConcatenation {
public static void main(String[] args) {
String firstName = "山田";
String lastName = "太郎";
String fullName = firstName + " " + lastName;
System.out.println("フルネーム: " + fullName);
}
}
このように、文字列を扱う方法を理解すれば、さまざまなデータを操作できるようになります。
3. 文字列の結合(+ 演算子を使う方法)
Java では、2 つ以上の文字列をつなげる方法として、+ 演算子を使います。
+ 演算子を使った文字列の結合
文字列を結合するには、+ 演算子を使って、文字列同士をつなげます。
public class StringConcatExample {
public static void main(String[] args) {
String firstName = "田中";
String lastName = "一郎";
String fullName = firstName + " " + lastName;
System.out.println("フルネーム: " + fullName);
}
}
フルネーム: 田中 一郎
複数の文字列を結合する
例えば、あいさつのメッセージを作るときにも、文字列を結合することができます。
public class GreetingMessage {
public static void main(String[] args) {
String greeting = "こんにちは";
String name = "佐藤";
String message = greeting + "、" + name + "さん!";
System.out.println(message);
}
}
こんにちは、佐藤さん!
このように、いくつかの文字列を組み合わせて、新しい文章を作ることができます。
4. 文字列の長さを調べる(length メソッド)
文字列が何文字あるかを調べるには、length メソッドを使います。
length メソッドの使い方
文字列の長さを取得するには、次のように書きます。
public class StringLengthExample {
public static void main(String[] args) {
String message = "こんにちは、Java!";
int length = message.length();
System.out.println("文字列: " + message);
System.out.println("文字数: " + length);
}
}
文字列: こんにちは、Java!
文字数: 11
いろいろな文字列の長さを調べる
長さの違う文字列を使って、length メソッドの動作を確認してみましょう。
public class StringLengthCheck {
public static void main(String[] args) {
String word1 = "Java";
String word2 = "プログラミング";
String word3 = "こんにちは";
System.out.println("文字列: " + word1 + " → 文字数: " + word1.length());
System.out.println("文字列: " + word2 + " → 文字数: " + word2.length());
System.out.println("文字列: " + word3 + " → 文字数: " + word3.length());
}
}
文字列: Java → 文字数: 4
文字列: プログラミング → 文字数: 7
文字列: こんにちは → 文字数: 5
文字数を調べると、それぞれの文字列が何文字あるのかを簡単に知ることができます。
6. 文字列の比較(equals メソッドと == の違い)
Java では、2 つの文字列が同じかどうかを調べる方法として、== と equals メソッドがあります。
== を使った文字列の比較
Java で == を使うと、変数が同じオブジェクトを指しているかどうかを比較します。
public class StringComparison {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Java";
String str3 = new String("Java");
System.out.println("str1 == str2: " + (str1 == str2)); // true
System.out.println("str1 == str3: " + (str1 == str3)); // false
}
}
str1 == str2: true
str1 == str3: false
str1 と str2 は同じ文字列リテラルなので、== で比較すると true になります。
しかし、str3 は new String("Java") で作成されたため、別のオブジェクトとして扱われます。そのため == で比較すると false になります。
equals メソッドを使った文字列の比較
文字列の内容が同じかどうかを確認する場合は、equals メソッドを使います。
public class StringEqualsExample {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Java";
String str3 = new String("Java");
System.out.println("str1.equals(str2): " + str1.equals(str2)); // true
System.out.println("str1.equals(str3): " + str1.equals(str3)); // true
}
}
str1.equals(str2): true
str1.equals(str3): true
equals メソッドを使うと、オブジェクトが異なっていても文字列の内容が同じであれば true になります。
そのため、文字列の比較には equals メソッドを使うのが基本です。
7. 文字列の置換(replace メソッド)
Java では、replace メソッドを使うと、文字列の一部を別の文字列に置き換えることができます。
replace メソッドの使い方
例えば、文章の中の特定の単語を別の単語に置き換えることができます。
public class StringReplaceExample {
public static void main(String[] args) {
String sentence = "今日は雨です。";
String newSentence = sentence.replace("雨", "晴れ");
System.out.println("元の文章: " + sentence);
System.out.println("置換後の文章: " + newSentence);
}
}
元の文章: 今日は雨です。
置換後の文章: 今日は晴れです。
replace("雨", "晴れ") を使うことで、「雨」という単語を「晴れ」に置き換えることができます。
複数の文字を置き換える
複数の単語を別の単語に置き換えることもできます。
public class MultiReplaceExample {
public static void main(String[] args) {
String text = "Javaは楽しい。Javaを学ぼう!";
String newText = text.replace("Java", "プログラミング");
System.out.println("元の文章: " + text);
System.out.println("置換後の文章: " + newText);
}
}
元の文章: Javaは楽しい。Javaを学ぼう!
置換後の文章: プログラミングは楽しい。プログラミングを学ぼう!
このように、replace メソッドを使うと簡単に文字列を置き換えることができます。
8. 練習問題:文字列を操作するプログラムを作ろう
ここまで学んだ内容を活用して、簡単なプログラムを作ってみましょう。
問題 1: 名前の結合
次のプログラムを作りましょう。
- 姓と名をつなげて、フルネームを作る
- フルネームの長さを調べる
public class NameLength {
public static void main(String[] args) {
String firstName = "佐藤";
String lastName = "太郎";
String fullName = firstName + " " + lastName;
System.out.println("フルネーム: " + fullName);
System.out.println("文字数: " + fullName.length());
}
}
フルネーム: 佐藤 太郎
文字数: 6
問題 2: 文章の単語を置き換える
文章の中の特定の単語を別の単語に置き換えてみましょう。
public class ReplacePractice {
public static void main(String[] args) {
String text = "今日は寒いです。";
String newText = text.replace("寒い", "暖かい");
System.out.println("元の文章: " + text);
System.out.println("置換後の文章: " + newText);
}
}
元の文章: 今日は寒いです。
置換後の文章: 今日は暖かいです。
このように、文字列の比較や置換をうまく活用すると、いろいろな文章を操作できるようになります。