嵌套循环无法正常工作
我有这段代码。如果第一个String
包含类似于第二个String
的字符,并且第二个String
包含THAT字符,则该代码将对第一个String
进行评估,请将第二个String
中的该字符替换为“Q”。 示例字符串是:嵌套循环无法正常工作
str1 = abc;
str2 = dagb;
在第一String
,这是“ABC”,它的计算结果,如果“A”,在第二String
,这是“dagb”,如果是这样,“A”中包含将String
“dagb”替换为“Q”,因此输出将为“dQgb”。
我的问题是嵌套循环。在找到第一个String
中的第一个字符后,它停止输出我的代码“dQgb”。它应该继续循环。在第一个String
“abc”中查找下一个字符,即“b”。
所以最终的输出应该是“dQgQ”。
String g = "abc";
String h = "dagb";
for(int j = 0; j < g.length(); j++) {
char c = g.charAt(j);
for (int k = 0; k < h.length();k++) {
char l = h.charAt(k);
if(c == l) {
String inputs = g.replace(c, ' ');
String inputss = h.replace(Character.toString(l),"Q");
input = input.replace(g, inputs);
input = input.replace (h, inputss);
input = input.replace (" ", "");
// break;
} else {
continue;
}
}
}
我不知道如何解决你的代码,但是你可以使用这个:
String g = "abc";
String h = "dagb";
for(int j = 0; j < g.length();j++){
char c = g.charAt(j);
h = h.replace(c,'Q');
}
我宁愿StringBuilder
,因为它是可变,然后调用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
如果什么Q是一个字符串?或像“你好”的字符串? –
@JohnOtom在这种情况下,我可能会提出一个正则表达式,但这本质上比你所问的要复杂得多(这在实践中已经不寻常了)。 –
在你输入的情况下是什么,你如何使用它,会给我们整个上下文 – Mehdi