Java 如何在较大的字符串上找到特定的字符串?

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

我正在尝试删除多个特定字符串。例如,我有一个字符串可以打印:

1.绝地武士 2.西斯 3.西斯 4.西斯 赏金猎人 6.绝地武士 7.西斯 8.机器人

我的目标是删除重复项,以便打印:

  • 绝地武士
  • 西斯
  • 赏金猎人
  • 机器人
  • 如果我把其中一个绝地改成“某物绝地”,它就不会打印“某物绝地”

    输出应为:

    1.绝地武士 2.西斯 赏金猎人 4.机器人 5.绝地武士

    现在我正在使用这段代码来完成删除重复项的任务

    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";