Java 如何在较大的字符串上找到特定的字符串?
我正在尝试删除多个特定字符串。例如,我有一个字符串可以打印: 1.绝地武士 2.西斯 3.西斯 4.西斯 赏金猎人 6.绝地武士 7.西斯 8.机器人 我的目标是删除重复项,以便打印:Java 如何在较大的字符串上找到特定的字符串?,java,string,if-statement,duplicates,treemap,Java,String,If Statement,Duplicates,Treemap,我正在尝试删除多个特定字符串。例如,我有一个字符串可以打印: 1.绝地武士 2.西斯 3.西斯 4.西斯 赏金猎人 6.绝地武士 7.西斯 8.机器人 我的目标是删除重复项,以便打印: 绝地武士 西斯 赏金猎人 机器人 如果我把其中一个绝地改成“某物绝地”,它就不会打印“某物绝地” 输出应为: 1.绝地武士 2.西斯 赏金猎人 4.机器人 5.绝地武士 现在我正在使用这段代码来完成删除重复项的任务 if (department.contains(departmentList.get(empNam
if (department.contains(departmentList.get(empName))){
}
else{
department += j + ": " + departmentList.get(empName) + "\n";
j++;
}
我知道错误在哪里。因为我使用的是.contains(变量),当它检查“某物绝地”时,它会发现“绝地”这个词已经在那里了。因此,它返回true,并且不会将其添加到部门中 创建一个集合以包含已输出部门的全名。每次要输出部门时,请检查集合是否已包含该部门。如果不是,则输出部门名称并将其添加到集合中 例如:
Set<String> usedDepartments = new HashSet<String>();
作为部门的价值观:
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
首先,将字符串拆分为链接。
其次,从中创建一个集合,这样它将删除所有重复。
部门
应该是一个集合
,而不是字符串
:
Set<String> departments = new HashSet<String>();
循环之后:
int i = 0;
String output = "";
for (String s : departments)
output += i + ": " + s + "\n";
这绝对有效!谢谢你,杰森!!这正是我需要的!
departments.add(departmentList.get(empName));
int i = 0;
String output = "";
for (String s : departments)
output += i + ": " + s + "\n";