在线求一个java小算法

开门大吉送吉祥 2009-08-05 02:37:17
字符串:801;959;960;801;959;960;962

将里面重复的数字去掉,在线等,谢谢各位大侠。。
...全文
199 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hui94781674 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 kofalex 的回复:]
引用 11 楼 hui94781674 的回复:
Java codereturn result.substring(0,result.length()-1);
  big bug 最后这句有什么用哈。。删了输出结果还是一样哈。

少了个冒号呗
[/Quote]
谢谢。。知道了,没认真看我!
againsmile 2009-08-06
  • 打赏
  • 举报
回复
我也来学学哈哈
bigbug9002 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wzj167 的回复:]
引用 3 楼 princesuperman 的回复:
引用 2 楼 bigbug9002 的回复:
Java codeimport java.util.*;publicclass Test1{publicstaticvoid main(String[] args){
        String str="801;959;960;801;959;960;962";
        String result=removeRepeated(str);
        System.out.println(result);

    }publicstatic  String removeRepeated(String str){
        String[] strs=str.split(";");
        String result="";
        HashSet <String> hs=new HashSet <String>();for(String s:strs){if(!hs.contains(s)){
                result+=s+";";
                hs.add(s);
            }
        }return result.substring(0,result.length()-1);
    }

}


正解

如果要考虑顺序问题把HashSet改成LinkedHashSet
[/Quote]
不用改
我不是把放到set中的字符串连起来,我只是用set来判断是否重复.结果是按数组的顺序连接的。
hoof82 2009-08-05
  • 打赏
  • 举报
回复
学习了。
kofalex 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hui94781674 的回复:]
Java codereturn result.substring(0,result.length()-1);
  big bug 最后这句有什么用哈。。删了输出结果还是一样哈。
[/Quote]
少了个冒号呗
wanghf_ 2009-08-05
  • 打赏
  • 举报
回复
以上都是正解
hui94781674 2009-08-05
  • 打赏
  • 举报
回复
return result.substring(0,result.length()-1);

big bug 最后这句有什么用哈。。删了输出结果还是一样哈。
ppl2046 2009-08-05
  • 打赏
  • 举报
回复
String str="801;959;960;801;959;960;962";
String[] results = str.split(";");
Set<String> result = new HashSet<String>();
for(String s : results) {
if(result.add(s)){
//无此元素时的代码
} else {
//包含此元素时的代码
}
}
toss2000 2009-08-05
  • 打赏
  • 举报
回复
首先把字符串进行分割,把数字都取出来然后放入Set集合,自然就把数字分开了,因为集合里不能有重复的值
wzj167 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 princesuperman 的回复:]
引用 2 楼 bigbug9002 的回复:
Java codeimport java.util.*;publicclass Test1{publicstaticvoid main(String[] args){
        String str="801;959;960;801;959;960;962";
        String result=removeRepeated(str);
        System.out.println(result);

    }publicstatic  String removeRepeated(String str){
        String[] strs=str.split(";");
        String result="";
        HashSet <String> hs=new HashSet <String>();for(String s:strs){if(!hs.contains(s)){
                result+=s+";";
                hs.add(s);
            }
        }return result.substring(0,result.length()-1);
    }

}


正解
[/Quote]
如果要考虑顺序问题把HashSet改成LinkedHashSet
itisonlylove_yy 2009-08-05
  • 打赏
  • 举报
回复
801;959;960;801;959;960;962 分别做为KEY,map相同的key会自动覆盖
gadfly1981 2009-08-05
  • 打赏
  • 举报
回复
读第一个801;,然后将所有801;用空字符串替换。
依次类推。
sky54521 2009-08-05
  • 打赏
  • 举报
回复
算法:
1.先用String的split方法把字符串中的所以数据放入一个数组A中
2.每次从数组中选取一个数字,放入另外一个数组B中
3.每次在数组B中加数据的时候都先把数据与数组B中的所以数据进行比较,如果相等就不加入数组B中
4.最后按格式输出数组B中的所以数据就行了
izard999 2009-08-05
  • 打赏
  • 举报
回复
用split分割,然后存入Set集合里面去,重复数字在Set中只会出现一次,存完以后取出来把字符串拼起来就是了.!
PrinceSuperman 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bigbug9002 的回复:]
Java codeimport java.util.*;publicclass Test1{publicstaticvoid main(String[] args){
String str="801;959;960;801;959;960;962";
String result=removeRepeated(str);
System.out.println(result);

}publicstatic String removeRepeated(String str){
String[] strs=str.split(";");
String result="";
HashSet<String> hs=new HashSet<String>();for(String s:strs){if(!hs.contains(s)){
result+=s+";";
hs.add(s);
}
}return result.substring(0,result.length()-1);
}

}
[/Quote]

正解
bigbug9002 2009-08-05
  • 打赏
  • 举报
回复
import java.util.*;
public class Test1{
public static void main(String[] args){
String str="801;959;960;801;959;960;962";
String result=removeRepeated(str);
System.out.println(result);

}
public static String removeRepeated(String str){
String[] strs=str.split(";");
String result="";
HashSet<String> hs=new HashSet<String>();
for(String s:strs){
if(!hs.contains(s)){
result+=s+";";
hs.add(s);
}
}
return result.substring(0,result.length()-1);
}

}
rumlee 2009-08-05
  • 打赏
  • 举报
回复
要看多不多了,如果不多的话,使用Map就比较简单了。如果多了的话,可能需要使用数据库等其它方式来存储之后再操作了。

先把数据split开,然后逐个存入一个Map中,然后再逐个从Map中取出来,重复的自然就被剔除掉了。如果剔除了之后还要保存顺序的话,就是用LinkedHashMap就可以了。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧