※ ChatGPTを利用し、要約された質問です(原文:javaの問題です。)
このQ&Aのポイント
Javaのプログラムで文字列の置換処理を行う際に、第二引数が複数存在する場合にうまく処理できない問題が発生しています。
具体的には、第一引数に含まれる複数の第二引数を順番に置換すると、後半部分の置換が正しく行われないという問題です。
対策としては、文字列を置換する際に、一度置換した部分を残し、再度置換処理を行う必要があります。具体的な実装方法については、コードの改良が必要です。
現在以下のようにプログラムを書いてみました。
public class Replace {
public static void main(String[] args) {
String str = args[0];
int num = str.indexOf(args[1]);
while (num != -1){
str = ( str.substring(0, num) + args[2]
+ str.substring(num + args[1].length()) );
num = str.indexOf(args[1]);
}
System.out.println(str);
}
}
第一引数に第二引数が含まれていれば、それを第三引数に置換する、というものです。
上記にて第二引数が単体ならば動作するのですが、たとえば
第一引数:ABCBA 第二引数:AB 第三引数:C という風に第二引数を複数にすると、
結果がCCBAと後半のBAが変換されなくなってしまいました。
後半部分もAとBが含まれる、ということで、同じように変換出来るようにしたいのですがどのようにすればよいのでしょうか?;;
どうぞよろしくお願いいたします;;
お礼
何度もお手数をお掛けしまして本当に申し訳ありませんでした;; そして根気強くお付き合いくださいましてありがとうございました!