マッチしたところの文字を書き換えるためにreplaceやreplaceAllなどを使わずにfor文を使って書き換えたいです。
ですが、ネットのどこにも例文がなく、行き詰っています。
for文を使った例文を教えていただけませんか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
StringBuilderを使った改良版。
java
1public class Q41586 { 2 3 public static void main(String[] args) { 4 String str = "あぇあぇあぇ"; 5 StringBuilder builder = new StringBuilder(str); 6 int i = 0; 7 String target = "あ"; 8 String replacer = "ね"; 9 while ((i = builder.indexOf(target, i)) >= 0){ 10 builder.delete(i, i + target.length()); 11 builder.insert(i, replacer); 12 } 13 System.out.println(builder); 14 } 15 16}
投稿2016/07/20 01:01
総合スコア20651
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
indexOfを使うならこんな感じでしょうか。
for文ではなく、while文ですが。
String str = "abcabcabc"; String target = "c"; String rep = "ww"; while(str.indexOf(target) > 0) { String sub = str.substring(0, str.indexOf(target)); sub += rep; sub += str.substring(str.indexOf(target) + target.length(), str.length()); str = sub; } System.out.println("[" + str + "]");
投稿2016/07/19 12:56
総合スコア1682
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/20 00:36
2016/07/21 04:51
2016/07/21 05:04
2016/07/21 05:16
2016/07/21 05:24
0
ベストアンサー
こんな感じでどうでしょう?
java
1public class Match { 2 3 public static void main(String[] args) { 4 5 String EditStr = ""; 6 String ReplaceStr = "z"; 7 String MatchStr = "c"; 8 String InputStr = "abcde"; 9 String[] AryStr = InputStr.split(""); 10 11 for (int i = 0; i < AryStr.length; i++) { 12 if (AryStr[i].equals(MatchStr)) { 13 EditStr = EditStr + ReplaceStr; 14 } else { 15 EditStr = EditStr + AryStr[i]; 16 } 17 18 } 19 20 System.out.println("編集前の値は" + InputStr + "です"); 21 System.out.println("編集後の値は" + EditStr + "です"); 22 23 } 24 25}
投稿2016/07/19 09:14
総合スコア357
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/20 00:24
2016/07/20 01:44
2016/07/20 01:52
2016/07/20 01:54
2016/07/20 01:57
2016/07/20 02:02
2016/07/20 02:05
2016/07/20 05:30
2016/07/20 05:46
2016/07/20 05:53
2016/07/20 06:09
2016/07/20 07:49
0
投稿2016/07/19 08:45
総合スコア2208
0
新しい文字列を作ります。
マッチしたものより前の文字列を新しい文字列に加えます。
置換文字列を加えます。
これをマッチしなくなるまで繰り返します。(ここがループ)
最後に、残りを加えます。
以上です。
投稿2016/07/19 08:44
総合スコア28660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 08:58
2016/07/19 09:04
2016/07/20 00:33
2016/07/20 01:42
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。