【Java】レッスン1-4:文字列を操作しよう

一つ前のページでは算術演算子について学習しました。
今回は 文字列操作 について見ていきましょう。
Lesson1:基礎文法編
・Lesson1-1:JAVAの入り口|初めてコードを書いてみよう
・Lesson1-2:変数と定数を理解しよう
・Lesson1-3:四則演算をしよう
・Lesson1-4:文字列を操作しよう ◁今回はココ
・Lesson1-5:乱数を生成しよう
・確認問題1-☆1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:クラス編
文字列操作入門|基本概念・便利メソッド・活用例
プログラムで文字列を自在に扱えるようになると、画面表示やユーザー入力の加工、データの整形など、さまざまな場面で応用できるようになります。
Javaには文字列を連結するための演算子や、検索・置換・部分抽出といった便利なメソッドが用意されており、これらを使いこなせばプログラムの表現力が大きく広がります。
本記事では、Java初心者でも理解しやすいように、文字列操作の基本から代表的なメソッドの使い方までをわかりやすく解説します。
最後まで読むことで、コード内での文字列処理がグッとスムーズになりますので、ぜひ一緒に学んでいきましょう。

文字列を作成・連結する方法|+演算子の使い方
文字列を扱うにはString
型を使います。
まずは文字列の宣言方法と基本的な操作である 文字列の連結 について見ていきましょう。
// 文字列の宣言 String greeting = "こんにちは"; String name = "世界"; // 文字列の連結 String message = greeting + ", " + name + "!"; System.out.println(message); // 出力結果: こんにちは, 世界!
このように、String
型の変数や文字列自体を +
演算子 でつなげることで、複数の文字列を一つに結合することが可能です。
文字列操作の便利メソッドの基本的な使い方
プログラムで何か特定の操作を行いたい場合、Javaでは「メソッド」というものを使います。
メソッドは、特定の処理を行う「機能」や「道具」と考えるとわかりやすいでしょう。たとえば、文字列の長さを知りたいときに使うメソッドがlength()
です。
メソッドを使うときは、次のように「使いたい変数の後ろにドット(.
)をつけてメソッド名を記述」するだけです。
以下はlength()
メソッドを使用する例です。
String text = "Hello"; int x = text.length(); // lengthメソッドで変数text内の文字数を取得し、変数xに代入 System.out.println(x); // 出力結果: 5
ここではtext
という文字列に対して「長さを取得する」length()
メソッドを使っています。このように、ドット(.
)でつないで呼び出すのがメソッドの基本的な使い方です。
メソッドの詳細な仕組みや種類については第3章で詳しく学びますが、今は「文字列の便利な機能」としてメソッドを使いこなせるようになりましょう。

よく使う文字列操作メソッド一覧とその使用例
Javaには文字列の操作に便利なメソッドが豊富に用意されています。
ここではよく使用される基本的なメソッドをいくつか紹介します。
文字列の長さを取得する|length()
メソッド
length()
メソッド は文字列の文字数を返します。
使用例は以下の通りです。
String text = "Java"; System.out.println(text.length()); // 出力結果: 4
指定した位置の文字を取得する|charAt(int index)
メソッド
charAt()
メソッド は文字列の中から指定された位置にある文字を取得します。
位置は インデックス番号 で指定します。インデックス番号とは文字列の先頭を0とし、順番に付けた番号のことです。
String text = "Hello"; System.out.println(text.charAt(0)); // 出力結果: H System.out.println(text.charAt(1)); // 出力結果: e System.out.println(text.charAt(2)); // 出力結果: l System.out.println(text.charAt(3)); // 出力結果: l System.out.println(text.charAt(4)); // 出力結果: o
範囲外のインデックス番号を指定するとエラーが発生するため注意しましょう。
このコードの場合、5以上の数値を指定することはできません。
部分文字列を取得する|substring(int beginIndex, int endIndex)
メソッド
substring()
メソッド は文字列の一部を切り出して新しい文字列を返します。
切り出す範囲はcharAt()
メソッドと同様にインデックス番号で指定します。
String text = "Hello, World!"; System.out.println(text.substring(0, 5)); // 出力結果: Hello System.out.println(text.substring(3, 8)); // 出力結果: lo, Wo System.out.println(text.substring(7, 13)); // 出力結果: World!
こちらも存在しないインデックス番号を指定するとエラーが発生するため注意しましょう。
文字列の連結と組み込みメソッドの活用コード例
それでは上記のメソッドを組み合わせて文字列操作のサンプルプログラムを見てみましょう。
public class Main { public static void main(String[] args) { String original = "Java Programming"; // 文字列の長さを取得 System.out.println("文字列の長さ: " + original.length()); // 指定した位置の文字を取得 System.out.println("3番目の文字: " + original.charAt(2)); // 部分文字列を取得 System.out.println("部分文字列: " + original.substring(5, 16)); // 文字列の連結 String newString = original + " is fun!"; System.out.println("新しい文字列: " + newString); } }
このコードを実行すると以下のように出力されます。
文字列の長さ: 16 3番目の文字: v 部分文字列: Programming 新しい文字列: Java Programming is fun!
この例ではlength()
、charAt()
、substring()
の各メソッドを使い、文字列の基本的な操作方法を確認できます。
まとめ|文字列を自在に扱うための基礎を習得
今回学習した内容では、Javaにおける文字列の作成や連結、そして便利な組み込みメソッドの使い方を体系的に押さえることができました。
+
演算子での簡単な連結から、length()
・charAt()
・substring()
などを使った柔軟な文字列操作まで、実際のコード例と共に理解できたはずです。
これらのスキルを身につけることで、画面表示の整形やユーザー入力の加工など、日常的なプログラミング作業の幅が大きく広がります。
知識を積み重ねるごとに、Javaの世界がどんどん面白くなっていきます。
練習問題|入力された文字列から情報を抽出・加工するプログラムを作ろう

Javaの基本的な文字列操作を学ぶためのプログラムを作成しましょう。
このプログラムはユーザーから文字列を入力してもらい、入力された文字列の長さや一部を表示したり、指定の文字列を結合したりします。
文字列操作の基礎を理解することが目標です。
この問題の要件
以下の要件に従ってコードを完成させてください。
Scanner
クラスを使用して、ユーザーから文字列の入力を受け取ること。- 入力された文字列の長さを取得し、画面に表示すること。
- 入力された文字列の最初の文字を取得し、画面に表示すること。
- 入力された文字列の最初の3文字を取得し、画面に表示すること。
※入力された文字列が3文字以上の場合のみ取得・表示すること。 - 入力された文字列に「 – JAVA学習中」を結合した新しい文字列を作成し、画面に表示すること。
ただし、以下のような実行結果となること。
文字列を入力してください: プログラミング 文字列の長さ: 6 最初の文字: プ 最初の3文字: プロ 結合された文字列: プログラミング - JAVA学習中
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:Scannerクラスをインポート
2:クラスStringManipulationExampleの定義
□ mainメソッドの開始
□ □ Scannerオブジェクトを作成し、変数scannerに代入
□ □ 「文字列を入力してください:」と出力
□ □ ユーザーの入力を受け取り、変数inputに代入
□ □ 文字列の長さを取得し、「文字列の長さ:」と表示
□ □ 文字列の最初の文字を取得し、「最初の文字:」と表示
□ □ 文字列の最初の3文字を取得し、「最初の3文字:」と表示
□ □ 文字列を結合し、新しい文字列を変数messageに代入
□ □ 「結合された文字列:」とmessageの内容を出力
□ mainメソッドの終了
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
// このプログラムは、入力された文字列を操作して様々な情報を表示します。 import java.util.Scanner; // 入力機能のためのインポート public class StringManipulationExample { public static void main(String[] args) { // 入力を受け取るためのScannerオブジェクトを作成 Scanner scanner = new Scanner(System.in); // ユーザーに文字列の入力を促す System.out.println("文字列を入力してください:"); String input = scanner.nextLine(); // ユーザーからの入力を受け取る // 文字列の長さを表示 /*【穴埋め問題1】 ここで文字列の長さを取得し、「文字列の長さ:」とともに表示するコードを書いてください。 */ // 最初の文字を取得して表示(空文字の可能性については今回考慮しない) /*【穴埋め問題2】 ここで文字列の最初の文字を取得し、「最初の文字:」とともに表示するコードを書いてください。 */ // 文字列の一部(最初の3文字)を表示(3文字以上の場合のみ想定) /*【穴埋め問題3】 ここで文字列の最初の3文字を取得し、「最初の3文字:」とともに表示するコードを書いてください。 */ // 文字列の結合例 /*【穴埋め問題4】 ここでinputと文字列「 - JAVA学習中」を結合し、変数messageに格納し、「結合された文字列:」とともに表示するコードを書いてください。 */ } }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
練習問題の解答と解説
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
// このプログラムは、入力された文字列を操作して様々な情報を表示します。 import java.util.Scanner; // 入力機能のためのインポート public class StringManipulationExample { public static void main(String[] args) { // 入力を受け取るためのScannerオブジェクトを作成 Scanner scanner = new Scanner(System.in); // ユーザーに文字列の入力を促す System.out.println("文字列を入力してください:"); String input = scanner.nextLine(); // ユーザーからの入力を受け取る // 文字列の長さを表示 System.out.println("文字列の長さ: " + input.length()); // 最初の文字を取得して表示(空文字の可能性については今回考慮しない) System.out.println("最初の文字: " + input.charAt(0)); // 文字列の一部(最初の3文字)を表示(3文字以上の場合のみ想定) System.out.println("最初の3文字: " + input.substring(0, 3)); // 文字列の結合例 String message = input + " - JAVA学習中"; System.out.println("結合された文字列: " + message); } }
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
インポート文
import java.util.Scanner;
この行では
Scanner
クラスをインポートしています。Scanner
はユーザーからの入力を読み取るために使われるクラスで、java.util
パッケージに含まれています。インポートすることでプログラム内で
Scanner
クラスを使えるようになります。クラスの定義
public class StringManipulationExample { // ... }
Javaプログラムの基本構成として、
class
を使ってクラスを定義しています。このクラス
StringManipulationExample
の中で、文字列の操作を行うためのメインメソッドが定義されています。メインメソッド
public static void main(String[] args) { // ... }
main
メソッドはJavaプログラムのエントリーポイント(実行開始地点)です。このプログラムはここから処理が始まります。main
メソッドの中でユーザーからの入力を受け取り、文字列操作を行います。Scanner
オブジェクトの作成Scanner scanner = new Scanner(System.in);
ここで
Scanner
オブジェクトを作成し、標準入力(コンソール)からの入力を読み取れるようにしています。このオブジェクトを通して、ユーザーからの文字列入力を取得します。
ユーザーからの文字列入力を取得
System.out.println("文字列を入力してください:"); String input = scanner.nextLine();
System.out.println
でユーザーにメッセージを表示し、続いてscanner.nextLine()
で入力された文字列を取得し、input
という変数に格納しています。文字列の長さを表示
System.out.println("文字列の長さ: " + input.length());
ここでは文字列の長さを取得する
length()
メソッドを使っています。System.out.println
で「文字列の長さ:」とともに表示されます。文字列の最初の文字を取得して表示
System.out.println("最初の文字: " + input.charAt(0));
この部分では文字列の最初の文字を取得する
charAt(0)
メソッドを使用しています。charAt
メソッドは指定した位置の文字を返すもので、ここでは0
番目(最初の位置)の文字を取得しています。文字列の一部(最初の3文字)を取得して表示
System.out.println("最初の3文字: " + input.substring(0, 3));
ここでは
substring(0, 3)
メソッドを使って、文字列の一部を取得しています。substring
メソッドは、指定した範囲内の文字を取り出すメソッドで、ここでは0
から3
までの範囲の文字を取得します。このプログラムでは入力文字が3文字以上であることを前提にしています。
文字列の結合例
String message = input + " - JAVA学習中"; System.out.println("結合された文字列: " + message);
ここでは文字列の結合を行っています。
+
演算子を使って、input
に格納された文字列に「 – JAVA学習中」を追加し、新しい文字列message
として保存しています。その後
message
を「結合された文字列:」とともに表示します。