【发布时间】:2016-05-30 16:59:10
【问题描述】:
我正在尝试比较 2 个字符串并使用 StringBuilder 删除重复项..但是当我运行此代码时..它会删除找到的第一个重复项,然后退出循环...不删除第二个..
String name1 = "alpha";
String name2 = "delta";
name1 = name1.toLowerCase();
name2 = name2.toLowerCase();
StringBuilder sb1 = new StringBuilder(name1);
StringBuilder sb2 = new StringBuilder(name2);
for(int i=0; i<sb1.length();i++)
{
for(int j=0; j<sb2.length(); j++)
{
if(sb1.charAt(i) == sb2.charAt(j))
{
name1 = sb1.deleteCharAt(i).toString();
name2 = sb2.deleteCharAt(j).toString();
}
}
}
System.out.println(name1);
System.out.println(name2);
输出:
lpha
delt
【问题讨论】:
-
预期输出是什么?
-
@JavaGeo 重复要从两个字符串中删除... ExpectedOutput: name1 = pha and name2 = det .... 从两个字符串中删除第一个重复的 'a' 后......它出来了循环..
-
您将删除每个字符的结果存储在
name1中,但您每次都在循环中覆盖它... -
为澄清起见,如果
delta字符串中有另一个“a”,这会去掉alpha中的第二个“a”吗?即您是否要删除匹配对? -
@JavaGeo 他说预期是 name1 的 pha 和 name2 的 det。由于我暗示的原因......现在在下面解释,alpha 中的“l”被跳过了。
标签: java string stringbuilder string-comparison