嵌套循环不能正常工作

时间:2017-03-05 15:13:19

标签: java loops for-loop

我有这个代码。如果第一个String包含与第二个String类似的字符,则此代码将对其进行评估,如果第二个String包含该字符,则在第二个String中替换该字符“Q”。 示例字符串是:

str1 = abc;
str2 = dagb;

在第一个String,即“abc”中,它评估“a”是否包含在第二个String中,即“dagb”,如果是,则“{”包含在{ {1}}“dagb”将替换为“Q”,因此输出将为“dQgb”。

我的问题是嵌套循环。找到第一个String中的第一个字符后,它会停止输出我的代码“dQgb”。它应该继续循环。在第一个String“abc”中找到下一个字符,即“b”。

所以最终的输出应该是“dQgQ”。

String

2 个答案:

答案 0 :(得分:0)

我不确定如何修复您的代码,但您可以使用此代码:

String g = "abc";
String h = "dagb";
for(int j = 0; j < g.length();j++){
    char c = g.charAt(j);
    h = h.replace(c,'Q');
}

答案 1 :(得分:0)

我更喜欢StringBuilder因为它是 mutable ,然后调用String.contains(CharSequence)来确定该值是否存在于第一个String中。像,

String g = "abc";
String h = "dagb";
StringBuilder sb = new StringBuilder(h);
for (int i = 0; i < sb.length(); i++) {
    if (g.contains(String.valueOf(sb.charAt(i)))) {
        sb.setCharAt(i, 'Q');
    }
}
System.out.println(sb);

哪些输出(根据要求)

dQgQ