如何删除java中的重复字符串?

如何删除java中的重复字符串?,java,Java,输入:3 3 2 1 期望输出:3 2 1 (应保留空格) 我试着用这个方法,但不起作用 public String filterRepeats(String s) { return new LinkedHashSet<String(Arrays.asList(s.split("\\s"))).toString(); } public String filterRepeats(字符串s) { return new LinkedHashSet注意!下面的代码很昂贵,如果你

输入:3 3 2 1

期望输出:3 2 1

(应保留空格)

我试着用这个方法,但不起作用

public String filterRepeats(String s) 
{
        return new LinkedHashSet<String(Arrays.asList(s.split("\\s"))).toString();
}
public String filterRepeats(字符串s)
{

return new LinkedHashSet注意!下面的代码很昂贵,如果你只需要它工作,那么你可以用下面的方法来做

String a = "a b c d a b c";
Set<String> foo = new LinkedHashSet<>(Arrays.asList(a.split(" ")));
a = foo.toString().replaceAll("\\[|\\]","").replaceAll(","," ");

干杯!

您的代码工作正常。如果您关心
toString
方法的括号,只需从
LinkedHashSet
构建一个新字符串即可。例如:

public String filterRepeats(String s) {
        LinkedHashSet<String> set = new LinkedHashSet<String>(Arrays.asList(s.split("\\s")));

        String result = "";
        for (String elt : set) {
            result += elt + " ";

        }
        // trim last space
        result = res2.substring(0, result.length()-1);
        return result;

}
public String filterRepeats(字符串s){
LinkedHashSet=newLinkedHashSet(Arrays.asList(s.split(\\s));
字符串结果=”;
for(字符串elt:set){
结果+=elt+“”;
}
//修剪最后一个空格
result=res2.substring(0,result.length()-1);
返回结果;
}

您缺少一个
新的LinkedHashSet(Arrays.asList(s.split(\\s))).toString();
您还可以获得collection print语句的原始输出,因此可以将括号作为包含的输出。您已经非常接近这一点,请考虑一种可以利用的字符串连接器。我很乐意。如果您对答案感到满意,您应该将其标记为问题的可接受答案。将Hashset更改为LinkedHashSet.@dkb是的,我不知道订单在那里很重要,LinkedHashSet保留订单。我已经根据您的评论进行了更新。谢谢!
public String filterRepeats(String s) {
        LinkedHashSet<String> set = new LinkedHashSet<String>(Arrays.asList(s.split("\\s")));

        String result = "";
        for (String elt : set) {
            result += elt + " ";

        }
        // trim last space
        result = res2.substring(0, result.length()-1);
        return result;

}