Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで文字列を別の文字列に挿入する方法【サンプルコード付きで解説】

この記事では、ある文字列を別の文字列の中に挿入する方法について詳しく解説します。文字列(String)とは、1つ以上の文字が並んだデータであり、ダブルクォート(" ")で囲まれたデータ型のことです。

まずは、どのような処理を行うのか、具体的な入力と出力の例を見てみましょう。

入力と出力のイメージ

入力の例:

1つ目の文字列: Java Program
2つ目の文字列: Learning
挿入する位置(インデックス): 0

期待される出力:

実行結果:
LearningJava Program

この例では、1つ目の文字列「Java Program」の先頭(インデックス0)に、2つ目の文字列「Learning」を挿入することで、「LearningJava Program」という結果が得られます。

アルゴリズム

処理の手順は以下の通りです。

ステップ1 - 処理を開始する
ステップ2 - 2つの文字列(input_string_1、input_string_2)と、結果を格納する文字列(result)を宣言する
ステップ3 - 各変数に値を設定する
ステップ4 - forループで1つ目の文字列を先頭から順に走査し、i番目の位置で2つ目の文字列を連結する
ステップ5 - 結果を表示する
ステップ6 - 処理を終了する

例1: mainメソッド内にすべての処理を記述する方法

この例では、文字列の挿入処理を含むすべての操作をmainメソッド内に直接記述しています。

public class StringInsert {
    public static void main(String[] args) {
        String input_string_1 = "Java Program";
        String input_string_2 = "Learning";
        int index = 0;
        System.out.println("1つ目の文字列: " + input_string_1);
        System.out.println("2つ目の文字列: " + input_string_2);
        System.out.println("挿入位置のインデックス: " + index);
        System.out.println("実行結果:");
        String result = new String();
        for (int i = 0; i < input_string_1.length(); i++) {
            result += input_string_1.charAt(i);
            if (i == index) {
                result += input_string_2;
            }
        }
        System.out.println(result);
    }
}

実行結果:

1つ目の文字列: Java Program
2つ目の文字列: Learning
挿入位置のインデックス: 0
実行結果:
LearningJava Program

例2: メソッドに分割して記述する方法(オブジェクト指向)

続いて、挿入処理を独立したメソッドとしてカプセル化し、オブジェクト指向プログラミングのスタイルで記述した例を紹介します。処理をメソッドに分けることで、コードの再利用性と可読性が向上します。

import java.lang.*;
public class StringInsert {
    public static void insertString(String input_string_1, String input_string_2, int index) {
        String result = new String();
        for (int i = 0; i < input_string_1.length(); i++) {
            result += input_string_1.charAt(i);
            if (i == index) {
                result += input_string_2;
            }
        }
        System.out.println(result);
    }
    public static void main(String[] args) {
        String input_string_1 = "Java Program";
        String input_string_2 = "Learning";
        int index = 0;
        System.out.println("1つ目の文字列: " + input_string_1);
        System.out.println("2つ目の文字列: " + input_string_2);
        System.out.println("挿入位置のインデックス: " + index);
        System.out.println("実行結果:");
        insertString(input_string_1, input_string_2, index);
    }
}

実行結果:

1つ目の文字列: Java Program
2つ目の文字列: Learning
挿入位置のインデックス: 0
実行結果:
LearningJava Program

補足: StringBuilderを使ったより効率的な方法

上記の例では文字列の連結に「+」演算子を使用していますが、ループ内でString型に「+」で連結すると、そのたびに新しいStringオブジェクトが生成されるため、パフォーマンスの面で不利になります。実務ではStringBuilderクラスのinsert()メソッドを使うと、同じ処理を簡潔かつ高速に実現できます。

String result = new StringBuilder(input_string_1)
        .insert(index, input_string_2)
        .toString();

このようにわずか1行で挿入処理が完結するため、可読性・保守性・性能のすべての面で優れています。

まとめ

Javaで文字列を別の文字列に挿入するには、forループとcharAt()メソッドを組み合わせて1文字ずつ連結していく方法が基本です。仕組みを理解する練習としては最適ですが、実務ではStringBuilder#insert()を活用することで、シンプルで高速なコードを書けます。用途に応じて使い分けるとよいでしょう。

  1. Javaで文字列の先頭に別の文字列を挿入する方法を解説

    Javaでは、ある文字列の先頭に別の文字列を挿入(連結)する方法がいくつかあります。この記事では、代表的な2つの方法——char配列を使う方法とStringBufferクラスを使う方法——について、サンプルコードと実行結果付きで詳しく解説します。 方法1:char配列(文字配列)を使う char配列を利用すると、文字列の連結処理を低レベルで制御しながら行うことができます。手順は以下の通りです。 2つの文字列を用意します。ここでは、元の文字列を str1、先頭に挿入したい文字列を str2 とします。 2つの文字列の長さの合計をサイズとするchar配列を作成します。 配列の0番目から順に、st

  2. Javaで文字列内の母音をカウントする方法をわかりやすく解説

    Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t