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

1,2,3,4,5,2,4这个字符串2和4重复了应该怎么去掉呢。... 1,2,3,4,5,2,4 这个字符串 2和4 重复了 应该怎么去掉呢。 展开
 我来答
未来需努力点缀
推荐于2017-10-01 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:520万
展开全部

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

 

运行结果:

育知同创教育
2017-07-04 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

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

效果图如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
受司大人
2015-02-08 · 知道合伙人影视综艺行家
受司大人
知道合伙人影视综艺行家
采纳数:20262 获赞数:171846
毕业于浙江广厦,有一定的电脑专业基础和两年工作经验,读过相关书籍多本

向TA提问 私信TA
展开全部
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();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjh301314
2014-10-27 · TA获得超过55万个赞
知道顶级答主
回答量:24.4万
采纳率:90%
帮助的人:12亿
展开全部
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();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小屠户
2013-07-21 · TA获得超过383个赞
知道小有建树答主
回答量:329
采纳率:100%
帮助的人:223万
展开全部
放到set集合里面,set集合自动帮你去重!放完读出就好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式