カテゴリ: Javaの変数・データ型 更新日: 2025/03/27

Java の文字列(String)を扱う基本操作

069
Java の文字列(String)を扱う基本操作

新人と先輩の会話形式で理解しよう

新人

「Java で文字を扱う方法を知りたいのですが、どうすればいいですか?」

先輩

「Java では、文字列を扱うために String クラスを使うよ。プログラムで文章や名前を扱うときに欠かせないデータ型なんだ。」

新人

「具体的にはどうやって使うんですか?」

先輩

「それじゃあ、基本的な使い方を見ていこう!」

1. 文字列(String)とは?(基本的な説明)

1. 文字列(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 の基本的な使い方)

2. 文字列の宣言と代入(String の基本的な使い方)
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. 文字列の結合(+ 演算子を使う方法)

3. 文字列の結合(+ 演算子を使う方法)
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);
    }
}

こんにちは、佐藤さん!

このように、いくつかの文字列を組み合わせて、新しい文章を作ることができます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 文字列の長さを調べる(length メソッド)

4. 文字列の長さを調べる(length メソッド)
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 メソッドと == の違い)

6. 文字列の比較(equals メソッドと == の違い)
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

str1str2 は同じ文字列リテラルなので、== で比較すると true になります。

しかし、str3new 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 メソッド)

7. 文字列の置換(replace メソッド)
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. 練習問題:文字列を操作するプログラムを作ろう

8. 練習問題:文字列を操作するプログラムを作ろう
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);
    }
}

元の文章: 今日は寒いです。
置換後の文章: 今日は暖かいです。

このように、文字列の比較や置換をうまく活用すると、いろいろな文章を操作できるようになります。

Javaの変数・データ型の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク