カテゴリ: Java 更新日: 2025/12/20

JavaのStringクラスを完全ガイド!初心者でもわかる文字列操作入門

String クラス
String クラス

先生と生徒の会話形式で理解しよう

生徒

「Javaで文字列を操作する方法について教えてもらえますか?」

先生

「もちろんです。JavaにはStringクラスがあり、文字列を簡単に操作するためのメソッドがたくさん用意されています。」

生徒

「具体的にはどんなことができるんですか?」

先生

「例えば、文字列の一部を取り出したり、文字を置き換えたり、文字列を結合したりと、様々な操作が可能です。詳しく見ていきましょう!」

1. Stringクラスとは?

1. Stringクラスとは?
1. Stringクラスとは?

JavaのStringクラスは、文字列を扱うための基本クラスです。文字列は変更不可(イミュータブル)で、一度作成した文字列の内容を変更することはできません。しかし、様々なメソッドを使って新しい文字列を生成したり、文字列の操作を行うことができます。

たとえば、文字列を結合したり、特定の文字を検索したり、文字列の長さを調べたりと、日常的に必要になる操作を簡単に行うことができます。

2. Stringクラスの代表的なメソッド

2. Stringクラスの代表的なメソッド
2. Stringクラスの代表的なメソッド

JavaのStringクラスには、多くの便利なメソッドが用意されています。ここでは代表的なものをいくつか紹介します。

  • length(): 文字列の長さを返します。
  • charAt(int index): 指定した位置の文字を取得します。
  • substring(int beginIndex, int endIndex): 文字列の一部を取り出します。
  • toUpperCase()toLowerCase(): 文字列を大文字または小文字に変換します。
  • replace(CharSequence target, CharSequence replacement): 文字列内の特定の文字や文字列を置き換えます。
  • trim(): 文字列の前後にある空白を削除します。

これらのメソッドを活用することで、文字列を自在に操作できるようになります。

3. Stringクラスの基本的な使い方の例

3. Stringクラスの基本的な使い方の例
3. Stringクラスの基本的な使い方の例

次のコードは、Stringクラスのいくつかのメソッドを使った例です。


public class StringMethodsExample {
    public static void main(String[] args) {
        String text = "  Hello, Java World!  ";
        
        // 文字列の長さを取得
        int length = text.length();
        System.out.println("文字列の長さ: " + length);

        // 特定の文字を取得
        char letter = text.charAt(7);
        System.out.println("7番目の文字: " + letter);

        // 一部の文字列を取り出す
        String subText = text.substring(8, 12);
        System.out.println("一部の文字列: " + subText);

        // 大文字に変換
        String upperText = text.toUpperCase();
        System.out.println("大文字に変換: " + upperText);

        // 文字列の置き換え
        String replacedText = text.replace("Java", "World");
        System.out.println("置き換え後: " + replacedText);

        // 前後の空白を削除
        String trimmedText = text.trim();
        System.out.println("トリム後: " + trimmedText);
    }
}

このプログラムを実行すると、次のような出力が得られます:


文字列の長さ: 21
7番目の文字: J
一部の文字列: Java
大文字に変換:   HELLO, JAVA WORLD!  
置き換え後:   Hello, World World!  
トリム後: Hello, Java World!

このように、Stringクラスのメソッドを使えば、文字列を様々な方法で操作することができます。

4. 文字列の比較:== と equals の違い・compareTo の使い方

4. 文字列の比較:== と equals の違い・compareTo の使い方
4. 文字列の比較:== と equals の違い・compareTo の使い方

== は参照(オブジェクトの場所)を比較し、equals() は中身(文字列の内容)を比較します。アルファベットの大小を無視するなら equalsIgnoreCase()、辞書順で並べ替えたいときは compareTo() / compareToIgnoreCase() を使います。


// 参照比較と内容比較
String a = "Java";
String b = new String("Java");

System.out.println(a == b);              // 参照の比較(多くの場合 false)
System.out.println(a.equals(b));         // 内容の比較(true)
System.out.println(a.equalsIgnoreCase("java")); // 大小無視(true)

// 辞書順の比較(0:等しい, 0未満:小さい, 0より大:大きい)
int cmp = "Apple".compareTo("Banana");         // 負の値
int cmp2 = "Zoo".compareToIgnoreCase("apple"); // 正の値

// null セーフな比較(java.util.Objects)
boolean same = java.util.Objects.equals(a, b);
  

5. 部分一致の検索・判定:contains / indexOf / startsWith / endsWith

5. 部分一致の検索・判定:contains / indexOf / startsWith / endsWith
5. 部分一致の検索・判定:contains / indexOf / startsWith / endsWith

特定の文字列を含むか、どの位置にあるか、接頭辞・接尾辞に一致するかを調べられます。見つからない場合の indexOf()-1 を返す点に注意しましょう。


String text = "Hello, Java World!";

// 含むかどうか
boolean hasJava = text.contains("Java");

// 最初/最後に現れる位置(0始まり) 
int first = text.indexOf("o");       // 最初の 'o'
int last  = text.lastIndexOf("o");   // 最後の 'o'

// 接頭辞/接尾辞の判定(第2引数で開始位置を指定可能)
boolean start = text.startsWith("Hello");
boolean end   = text.endsWith("World!");
boolean startAt7 = text.startsWith("Java", 7); // 7文字目から"Java"か
  

6. 文字列の分割と結合:split と String.join

6. 文字列の分割と結合:split と String.join
6. 文字列の分割と結合:split と String.join

区切り文字で分割するには split()、複数の要素を 1 つの文字列に連結するには String.join() を使います。split() は正規表現を受け取るため、記号によってはエスケープが必要です(例:\\.)。


String csv = "apple,banana,orange";

// 分割(","で区切る)
String[] parts = csv.split(",");

// 空要素も保持して分割(第2引数に負数)
String[] keepEmpty = "a,,b,".split(",", -1); // ["a", "", "b", ""]

// 結合(区切り文字を指定)
String joined = String.join(" / ", parts); // "apple / banana / orange"

// 配列やリストを結合
java.util.List<String> list = java.util.Arrays.asList("A", "B", "C");
String s = String.join("-", list); // "A-B-C"
  

まとめ

まとめ
まとめ

今回の記事では、JavaのStringクラスについて詳しく解説しました。Stringクラスは、文字列操作を簡単に行える非常に便利なクラスであり、プログラム開発において重要な役割を果たします。この記事で取り上げたメソッドを活用することで、文字列の長さ取得、特定の文字取得、文字列の部分取り出し、文字列の変換、置き換え、トリムなど、様々な操作が可能であることを学びました。

特に初心者にとっては、文字列の扱いを理解することがJavaプログラミングの基本スキルを習得する第一歩となります。この記事で取り上げたサンプルコードを実行しながら、実際の挙動を確認してみることをお勧めします。また、複雑な文字列操作が必要な場合には、今回触れた基本メソッドを組み合わせることで柔軟に対応できます。


public class SummaryExample {
    public static void main(String[] args) {
        String text = "Learn Java Strings!";

        // 基本的な文字列操作
        System.out.println("Original: " + text);
        System.out.println("Lowercase: " + text.toLowerCase());
        System.out.println("Uppercase: " + text.toUpperCase());
        System.out.println("Substring (6, 10): " + text.substring(6, 10));
        System.out.println("Replace 'Java' with 'Programming': " + text.replace("Java", "Programming"));
    }
}

このコードを実行することで、Stringクラスの主要な操作に再び触れることができます。初心者の方は、この例をアレンジしてみて、自分の目的に合った操作ができるか試してみてください。

先生と生徒の振り返り会話

生徒

Stringクラスのメソッドって、すごく便利ですね。特に文字列の置き換えや部分取り出しが簡単にできるのが良いと思いました。」

先生

「その通りです。文字列の基本的な操作がしっかり理解できれば、プログラムの見通しも良くなりますよ。次はこれを活用して、もっと応用的な課題にも挑戦してみましょう。」

生徒

「はい!例えば、ユーザーが入力した文字列を処理する機能を作ってみたいです。」

先生

「それは良い目標ですね。ユーザー入力のバリデーションやフォーマット変換も、Stringクラスのメソッドを活用すればスムーズに実装できますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaのStringクラスとは何ですか?

JavaのStringクラスは文字列を扱うための基本的なクラスです。文字列は変更不可(イミュータブル)であり、一度作成した文字列は変更できませんが、新しい文字列を生成して操作することができます。

Stringクラスのlength()メソッドはどのように使いますか?

length()メソッドは文字列の長さを返します。例えば、"Hello"という文字列の場合、length()を使うと5が返されます。

substring()メソッドの使い方を教えてください。

substring()メソッドは文字列の一部を取り出すために使用します。たとえば、"Java Programming"から"Java"を取り出したい場合、substring(0, 4)を使います。

文字列を大文字や小文字に変換するにはどうすればいいですか?

大文字に変換するにはtoUpperCase()メソッド、小文字に変換するにはtoLowerCase()メソッドを使用します。たとえば、"hello"を"HELLO"にするにはtoUpperCase()を使います。

文字列内の特定の文字を別の文字に置き換える方法を教えてください。

replace()メソッドを使用します。例えば、"Hello World"の"World"を"Java"に置き換える場合、replace("World", "Java")を使用します。

trim()メソッドは何に使いますか?

trim()メソッドは文字列の前後にある余分な空白を削除するために使います。例えば、" Hello "という文字列にtrim()を適用すると、"Hello"になります。

StringクラスとStringBuilderクラスの違いは何ですか?

Stringクラスは文字列が変更不可であるのに対し、StringBuilderクラスは可変で効率的に文字列を操作することができます。繰り返し文字列を変更する場合はStringBuilderを使用する方が適しています。

StringクラスのcharAt()メソッドはどう使いますか?

charAt()メソッドは指定したインデックスの文字を取得します。たとえば、"Java"の1番目の文字を取得するにはcharAt(0)を使用し、結果は"J"です。

Javaで文字列を結合するにはどうすればいいですか?

文字列を結合するには"+"演算子またはconcat()メソッドを使用します。たとえば、"Hello"と"World"を結合すると"HelloWorld"になります。

replaceとreplaceAllの違いは何ですか?

replaceは単純な文字列の置き換えに使用し、replaceAllは正規表現を使った置き換えに対応しています。たとえば、replaceAllを使えば特定のパターンに一致する部分を置き換えられます。
カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法