【Java】文字列の特定のインデックスにある文字を置き換える方法
本記事では、Javaにおいて文字列内の特定のインデックス位置にある文字を別の文字に置き換える方法について解説します。文字列(String)とは、1つ以上の文字を含み、ダブルクォート(" ")で囲まれたデータ型のことです。
以下に実際の動作例を示します。
入力値の例
入力文字列: Java Programming インデックス: 6
期待される出力
変更後の文字列: Java P%ogramming
アルゴリズム
ステップ1 - 開始 ステップ2 - 文字列型の input_string、整数型の index、文字型の character を宣言する ステップ3 - 各変数に値を設定する ステップ4 - substring() を使ってインデックス0から指定インデックスまでの部分文字列を取得し、指定した文字と連結する。さらに「index + 1」以降の部分文字列を連結し、結果を保存する ステップ5 - 結果を表示する ステップ6 - 終了
例1:mainメソッド内ですべての処理を記述する場合
ここでは、すべての操作を「main」メソッド内にまとめて記述します。
public class StringModify {
public static void main(String args[]) {
String input_string = "Java Programming";
int index = 6;
char character = '%';
System.out.println("The string is defined as: " + input_string);
input_string = input_string.substring(0, index) + character + input_string.substring(index + 1);
System.out.println("\nThe modified string is: " + input_string);
}
}出力結果
The string is defined as: Java Programming The modified string is: Java P%ogramming
ポイント解説
この置き換え処理の鍵となるのは substring() メソッドです。substring(0, index) は先頭からインデックスの直前までの文字列を取得し、substring(index + 1) は置き換え対象の次の文字以降を取得します。これらの間に新しい文字を挟むことで、指定位置の文字だけを入れ替えた文字列が完成します。
なお、JavaのStringは不変(immutable)であるため、元の文字列そのものが書き換えられるわけではなく、新しい文字列オブジェクトが生成される点に注意してください。
例2:オブジェクト指向プログラミングのスタイルで実装する場合
ここでは、処理を独立したメソッドとしてカプセル化し、オブジェクト指向プログラミングの形式で実装します。
public class StringModify {
static void swap(String input_string, int index, char character){
input_string = input_string.substring(0, index) + character + input_string.substring(index + 1);
System.out.println("\nThe modified string is: " + input_string);
}
public static void main(String args[]) {
String input_string = "Java Programming";
int index = 6;
char character = '%';
System.out.println("The string is defined as: " + input_string);
swap(input_string, index, character);
}
}出力結果
The string is defined as: Java Programming The modified string is: Java P%ogramming
-
Javaで文字列内の母音をカウントする方法をわかりやすく解説
Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t
-
Pythonで指定したインデックスの文字を置き換える方法
Pythonでは、文字列 s、インデックス i、置き換えたい文字 c が与えられたときに、s の i 番目の文字を c で置き換えたいという場面があります。文字列はイミュータブル(変更不可)である点に注意Pythonにおいて文字列はイミュータブル(immutable)なオブジェクトです。そのため、次のように直接代入しようとするとエラーが発生します。s[i] = c # TypeError: str object does not support item assignmentこのエラーは「str オブジェクトは要素への代入をサポートしていない」ことを意味します。つまり、リストとは異なり、文字