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

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:文字列の操作

この記事の練習問題で使用する知識:
丸暗記構文入力と出力の基本コメントの書き方変数と定数算術演算子文字列の操作import文

<<前の問題 問題集Top 次の問題>>

JAVAの「文字列操作」とは

この章ではJAVAにおける「文字列操作」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



プログラミングにおいて文字列は、文章やメッセージの操作に重要な役割を果たします。

JAVAではString型を用いて文字列を扱い、さまざまなメソッドを活用して文字列を操作することができます。

この節では文字列の基本操作や、よく使用されるメソッドについて学びましょう。

文字列の宣言と基本操作

文字列を扱うにはString型を使います。まずは文字列の宣言方法と基本的な操作である連結について見ていきましょう。

// 文字列の宣言
String greeting = "こんにちは";
String name = "世界";

// 文字列の連結
String message = greeting + ", " + name + "!";
System.out.println(message); // 出力結果: こんにちは, 世界!

このように、String型の変数同士を+でつなげることで、複数の文字列を一つに結合することが可能です。

メソッドとは? 〜簡単な使い方〜

プログラムで何か特定の操作を行いたい場合、JAVAでは「メソッド」というものを使います。

メソッドは、特定の処理を行う「機能」や「道具」と考えるとわかりやすいでしょう。たとえば、文字列の長さを知りたいときに使うメソッドがlength()です。

メソッドを使うときは、次のように「使いたい変数の後ろにドット(.)をつけてメソッド名を記述」するだけです。以下はlength()メソッドの例です。

String text = "Hello";
System.out.println(text.length()); // 出力結果: 5

ここではtextという文字列に対して「長さを取得する」length()メソッドを使っています。このように、ドット(.)でつないで呼び出すのがメソッドの基本的な使い方です。

メソッドの詳細な仕組みや種類については第3章で詳しく学びますが、今は「文字列の便利な機能」としてメソッドを使いこなせるようになりましょう。

文字列のメソッドの紹介

JAVAには文字列の操作に便利なメソッドが豊富に用意されています。

ここではよく使用される基本的なメソッドをいくつか紹介します。

length():文字列の長さを取得する

String text = "Hello";
System.out.println(text.length()); // 出力結果: 5

length()メソッドは文字列の文字数を返します。

charAt(int index):指定した位置の文字を取得する

String text = "Hello";
System.out.println(text.charAt(1)); // 出力結果: e

charAt()は文字列の中から指定された位置(0から始まる)にある文字を取得します。

substring(int beginIndex, int endIndex):部分文字列を取得する

String text = "Hello, World!";
System.out.println(text.substring(0, 5)); // 出力結果: Hello

substring()は文字列の一部を切り出して新しい文字列を返します。

文字列操作の使用例

それでは上記のメソッドを組み合わせて文字列操作のサンプルプログラムを見てみましょう。

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における文字列の操作方法について学びました。

文字列はString型として宣言し、length()charAt()substring()といったメソッドを活用することで簡単に操作できます。

これらのメソッドを理解し、実際に手を動かしてみることで、文字列操作に慣れていきましょう。

練習問題1-4:入力された文字列を活用して情報を取得・加工するプログラムを作ろう

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を「結合された文字列:」とともに表示します。

まとめ

このプログラムを通して文字列の操作における基本的なメソッドであるlength()charAt()substring()、および文字列の結合方法を学ぶことができました。

これらのメソッドはJavaでの文字列操作の基礎であり、今後のプログラミングにも役立つものです。ぜひ、実際に手を動かしながら理解を深めてください。

Javaでの文字列操作に慣れることで、さらに複雑な文字列処理にも対応できるようになります。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    JAVAテキスト&問題集へ戻る
    トップページへ戻る