在java中比较字符串和打印剩余字符时出现意外输出?
这里有两条线
String first = "stack overflow";
String second = "java programming";
因此,我需要输出为:
stck eflow j prgmming
即,从第一个字符串中提取字符,并与第二个字符串中剩余的所有字符进行比较,如果存在,则将其删除。下面是我的代码,给出了一些意想不到的结果:
String first = "stack overflow";
String second = "java programming";
for (int i = 0; i < first.length(); i++) {
out.println("char position :" + first.charAt(i));
for (int j = 0; j < second.length(); j++) {
if (first.charAt(i) == second.charAt(j)) {
first = first.substring(0, i) + first.substring(i + 1);
second = second.substring(0, j) + second.substring(j + 1);
}
}
}
out.println(first+second);
# 1 楼答案
可以将StringBuffer与字符串一起使用。从StringBuffer对象而不是String对象中删除必要的字符
# 2 楼答案
我会先看每个单词中的字母,然后再打印声明。既然你说的要求是打印它,而不是返回一个值,那就是我要做的。如果这是不正确的,你可以构建字符串,就像我打印并返回字符串一样。鉴于我们的评论讨论,我将尝试让这更像是一个教程,而不是一个答案
该准则做出以下假设: 两个字符串之间只有空格是有效字符。 两个词都在同一个格里
虽然上面的代码更长,但效率更高,可以分解成更小的代码块。如果出现问题,调试会更容易一些,您可以更容易地进行单元测试。因为你是编程新手,我希望这个答案能帮助你学到一些其他的东西,除了你想要的问题