我试图摆脱多个特定的字符串。例如,我有一个字符串可以打印:
1.绝地2.sith 3.sith 4.sith 5赏金猎人6.jedi 7.sith 8机器人
我的目标是删除副本,以便打印:
如果我把其中一个绝地改成“绝地武士”,它就不会印刷“绝地武士”。
产出应是:
1.绝地2.sith 3.赏金猎人4.机器人--5岁左右的绝地
现在,我正在使用这段代码来完成删除重复项的任务。
if (department.contains(departmentList.get(empName))){
}
else{
department += j + ": " + departmentList.get(empName) + "\n";
j++;
}
我知道哪里出错了。由于我使用的是.contains(变量),当它检查“某某绝地”时,它会发现绝地这个词已经存在了。因此,它返回true,并且不会将其添加到部门。
发布于 2014-05-12 02:16:40
创建一个集来包含已经输出的部门的全名。每次您想要输出一个部门时,请检查该集是否已经包含它。如果没有,则输出部门名称并将其添加到集合中。
例如:
Set<String> usedDepartments = new HashSet<String>();
然后在你的循环中:
if(!usedDepartments.contains(departmentList.get(empName))) {
department += j + ": " + departmentList.get(empName) + "\n";
j++;
usedDepartments.add(departmentList.get(empName));
}
发布于 2014-05-12 03:25:48
作为你的部门的价值:
department += j + ": " + departmentList.get(empName) + "\n";
您可以更改您的IF语句:
if (department.contains(": " + departmentList.get(empName) + "\n"))
假设:
department = "1: something jedi.\n";
departmentList.get(empName) = "jedi.";
department.contains(": " + departmentList.get(empName) + "\n"); // will return false
发布于 2014-05-12 03:59:17
首先,将您的字符串拆分为Link。其次,做一个集合,这样它就会删除所有的重复。
https://stackoverflow.com/questions/23600073
复制相似问题