• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaの問題です。)

Javaの文字列置換の問題について

このQ&Aのポイント
  • Javaのプログラムで文字列の置換処理を行う際に、第二引数が複数存在する場合にうまく処理できない問題が発生しています。
  • 具体的には、第一引数に含まれる複数の第二引数を順番に置換すると、後半部分の置換が正しく行われないという問題です。
  • 対策としては、文字列を置換する際に、一度置換した部分を残し、再度置換処理を行う必要があります。具体的な実装方法については、コードの改良が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.3

ならばこうなります。 public class Replace { public static void main(String[] args) { String str = args[0]; for(int i=0;i<args[1].length();i++){ int num = str.indexOf(args[1].charAt(i)); while (num != -1){ str = (str.substring(0, num) + args[2] + str.substring(num + 1)); num = str.indexOf(args[1].charAt(i)); } } System.out.println(str); } }

noname#220630
質問者

お礼

何度もお手数をお掛けしまして本当に申し訳ありませんでした;; そして根気強くお付き合いくださいましてありがとうございました!

その他の回答 (2)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.2

AをCに変えてBもCに変えるということですか? 第一引数:ABCBA 第二引数:AB 第三引数:Cならば CCCCCという答えでしょうか? ならば第2引数を1文字づつ取り出してこの処理をすれば解決します。

noname#220630
質問者

お礼

ご回答ありがとうございました。

noname#220630
質問者

補足

おっしゃるとおり、CCCCCという答えにしたいのです。 最初からそのように質問できなくて申し訳ありません;; 一文字ずつ取り出す、というやり方もピンとこないのですが、charAtメソッドなどを使用するのでしょうか? 出来ましたらソースを書いていただけませんでしょうか・・・;

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

テストしましたがなんともないようですよ。 具体的にどのようなコマンドを与えたら変換できなくなりますか? 書かれているような、「第一引数:ABCBA 第二引数:AB 第三引数:C」 であれば答えはCCBAが正しくて、第2引数ABを見てBAは変換されません。

noname#220630
質問者

お礼

ご回答ありがとうございました。

noname#220630
質問者

補足

ご回答ありがとうございます><;; 第二引数がABではなく、AとBという風に捉えて後半部分も変換出来るようにならないかと考えたのですが、それは正しくないということなのですよね。 全面的にソースを書き換えても出来るようになったりはしないものでしょうか・・・;;

関連するQ&A

専門家に質問してみよう