java如何去掉字符串中重复的字符

1,2,3,4,5,2,4 这个字符串 2和4 重复了 应该怎么去掉呢。

lz  你好


这个就是一个比较简单的算法题 , 你可以自己写


但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用


其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便


以下是实现代码:

import java.util.List;
import java.util.Scanner;

public class DeleteRepeated {
private String str;
private TreeSet<String> noReapted;//带有String类型的TreeSet泛型
        
    public DeleteRepeated() {
     Scanner in = new Scanner(System.in);
    
     System.out.println ("输入一个字符串:");
     str = in.nextLine();
    
     noReapted = new TreeSet();
    }
    
    //清楚重复的数据
    public void removeRepeated(){
     for (int i = 0; i < str.length(); i++){
     noReapted.add(""+str.charAt(i));
     //str.charAt(i)返回的是char型  所以先加一个""空格 , 转换成String型
     //TreeSet泛型能保证重复的不加入 , 而且有序
     }
    
     str = "";
    
     for(String index:noReapted){
     str += index;
     }
    
     //输出
     System.out.println (str);
    }
    
    public static void main(String[] args) {
     DeleteRepeated dr = new DeleteRepeated();
    
     dr.removeRepeated();
    }
}



运行截图:



希望能帮助你哈

追问

您好 我现在有一个新问题了 就是有2个字符串 1,2,3,4 还有一个是2,3 我应该如何得到1和4 呢

追答

这个就自己写一个算法吧:

    //获取差集
    public String getDifferenceSet(){
     String ds = "";//差集字符串
     boolean isDifference=false;//是否相同
    
     //如果one的长度小于two的长度  就交换one和two
     if(one.length() < two.length()){
     String str = one;
     one = two;
     two = str;
     }
    
     for (int i = 0; i < one.length(); i++){
     for(int j = 0; j < two.length(); j++){
     //如果相等  那么跳出循环
     if(one.charAt(i) == two.charAt(j)){
     isDifference=false;
     break;
     }
     //否则继续判断
     else{
     isDifference=true;
     }
     }
    
     //如果不相同  就加入到ds中
     if(isDifference){
     ds += "" + one.charAt(i);
     isDifference = false;
     }
     }
    
     return ds;
    }

 

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-04

java去掉字符串中重复的字符参考代码:

 //获取差集
    public String getDifferenceSet(){
        String ds = "";//差集字符串
        boolean isDifference=false;//是否相同
         
        //如果one的长度小于two的长度  就交换one和two
        if(one.length() < two.length()){
            String str = one;
            one = two;
            two = str;
        }
         
        for (int i = 0; i < one.length(); i++){
            for(int j = 0; j < two.length(); j++){
                //如果相等  那么跳出循环
                if(one.charAt(i) == two.charAt(j)){
                    isDifference=false;
                    break;
                }
                //否则继续判断
                else{
                    isDifference=true;
                }
            }
             
            //如果不相同  就加入到ds中
            if(isDifference){
                ds += "" + one.charAt(i);
                isDifference = false;
            }
        }
         
        return ds;
    }

效果图如下:

第2个回答  2015-02-08
lz 你好

这个就是一个比较简单的算法题 , 你可以自己写

但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用

其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便

以下是实现代码:

import java.util.List;
import java.util.Scanner;

public class DeleteRepeated {
private String str;
private TreeSet<String> noReapted;//带有String类型的TreeSet泛型

public DeleteRepeated() {
Scanner in = new Scanner(System.in);

System.out.println ("输入一个字符串:");
str = in.nextLine();

noReapted = new TreeSet();
}

//清楚重复的数据
public void removeRepeated(){
for (int i = 0; i < str.length(); i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型 所以先加一个""空格 , 转换成String型
//TreeSet泛型能保证重复的不加入 , 而且有序
}

str = "";

for(String index:noReapted){
str += index;
}

//输出
System.out.println (str);
}

public static void main(String[] args) {
DeleteRepeated dr = new DeleteRepeated();

dr.removeRepeated();
}
}
第3个回答  2014-10-27
lz 你好

这个就是一个比较简单的算法题 , 你可以自己写

但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用

其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便

以下是实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.List;
import java.util.Scanner;

public class DeleteRepeated {
private String str;
private TreeSet<String> noReapted;//带有String类型的TreeSet泛型

public DeleteRepeated() {
Scanner in = new Scanner(System.in);

System.out.println ("输入一个字符串:");
str = in.nextLine();

noReapted = new TreeSet();
}

//清楚重复的数据
public void removeRepeated(){
for (int i = 0; i < str.length(); i ){
noReapted.add("" str.charAt(i));
//str.charAt(i)返回的是char型 所以先加一个""空格 , 转换成String型
//TreeSet泛型能保证重复的不加入 , 而且有序
}

str = "";

for(String index:noReapted){
str = index;
}

//输出
System.out.println (str);
}

public static void main(String[] args) {
DeleteRepeated dr = new DeleteRepeated();

dr.removeRepeated();
}
}
第4个回答  2013-07-21
放到set集合里面,set集合自动帮你去重!放完读出就好。
相似回答