• ベストアンサー
  • 困ってます

replaceを使った文字列の変換

  • 質問No.2285072
  • 閲覧数114
  • ありがとう数1
  • 回答数1

お礼率 43% (67/153)

失礼いたします。
基本的なことなのですが質問させてください。
今サーブレットから値を受け取り、その値に「歩」が含まれていたらそこを「走」と変更したいです。変更後の処理はできます。ただ、変更がうまくいかないです。次のようではだめでしょうか?

String sentence = req.getParameter("sentence");
String strData = "";
int intincrease = 0;
for (int i=sentence.length(); i > 0 ; i--)
{
//後ろから探して
strData = sentence.substring(i - 1,i);
if (strData.equals("歩"))
{
strData = strData.replaceAll("歩","走");
intincrease = intincrease + 1;
sentence = sentence.substring(0,sentence.length());
}
}

以上なのですが、うまくstrDataが表示されません。
例えば「綾子は歩いて出かけた」なら「綾子は走いて出かけた」としたいのです(文は変ですが)。
後ろから検索している深い意味はないです。
よろしくお願いします。m(__)m

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 53% (395/735)

> 「歩」が含まれていたらそこを「走」と変更したい
これはreplaceAllの機能そのままなので、

sentence = sentence.replaceAll("歩","走");

だけで良さそうです。
補足コメント
javatea_1985

お礼率 43% (67/153)

javateaです。
あの後いろんなサイトを調べ、
ほかの人の質疑応答の中で答えを見つけました。
sentence.replaceAll("歩","歩\\\\\\\\");
とやればいいようです。
ありがとうございました。
投稿日時:2006/07/19 11:27
お礼コメント
javatea_1985

お礼率 43% (67/153)

ご回答ありがとうございました。
早速やってみると、歩⇒走 はできました。o(^O^*=*^O^)o
でも、本当は「歩」⇒「歩\\」みたいな置換をしたいのです。
こうするとjava.lang.StringIndexOutOfBoundsException: String index out of range: 2
と出てしまいます。
文字数を変えたことによって起こられてしまいました。それとも\\が特殊文字だからでしょうか?
何度もすみませんがどうすればよいか教えていただけますでしょうか?m(__)m
投稿日時:2006/07/19 10:10
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ