在线求一个java小算法 字符串:801;959;960;801;959;960;962将里面重复的数字去掉,在线等,谢谢各位大侠。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要看多不多了,如果不多的话,使用Map就比较简单了。如果多了的话,可能需要使用数据库等其它方式来存储之后再操作了。先把数据split开,然后逐个存入一个Map中,然后再逐个从Map中取出来,重复的自然就被剔除掉了。如果剔除了之后还要保存顺序的话,就是用LinkedHashMap就可以了。 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); } } 用split分割,然后存入Set集合里面去,重复数字在Set中只会出现一次,存完以后取出来把字符串拼起来就是了.! 算法:1.先用String的split方法把字符串中的所以数据放入一个数组A中2.每次从数组中选取一个数字,放入另外一个数组B中3.每次在数组B中加数据的时候都先把数据与数组B中的所以数据进行比较,如果相等就不加入数组B中4.最后按格式输出数组B中的所以数据就行了 801;959;960;801;959;960;962 分别做为KEY,map相同的key会自动覆盖 如果要考虑顺序问题把HashSet改成LinkedHashSet 首先把字符串进行分割,把数字都取出来然后放入Set集合,自然就把数字分开了,因为集合里不能有重复的值 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 { //包含此元素时的代码 }} return result.substring(0,result.length()-1); big bug 最后这句有什么用哈。。删了输出结果还是一样哈。 不用改我不是把放到set中的字符串连起来,我只是用set来判断是否重复.结果是按数组的顺序连接的。 实现图片的传输问题。为什么代码运行到一半就停止了?请高手看看 Swing程序制作安装包的问题 求解一道SCJP概念题目 谢谢大家 不好意思之前点错了 如何把下拉菜单中的选择传递出来? 两道简单的程序题目,求高手看看 java如何表示一个asc码为0 的字符,用char类型吗? 帮忙解决一个关于网络方面的问题 ireport中数据怎样实现多列显示 JBuilder6.0的个人版或企业版哪能下的啊(带key),找了一晚了— — invoke无法实现 给个思路。。 java.lang.NoSuchMethodError
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);
}
}
1.先用String的split方法把字符串中的所以数据放入一个数组A中
2.每次从数组中选取一个数字,放入另外一个数组B中
3.每次在数组B中加数据的时候都先把数据与数组B中的所以数据进行比较,如果相等就不加入数组B中
4.最后按格式输出数组B中的所以数据就行了
String[] results = str.split(";");
Set<String> result = new HashSet<String>();
for(String s : results) {
if(result.add(s)){
//无此元素时的代码
} else {
//包含此元素时的代码
}
}
big bug 最后这句有什么用哈。。删了输出结果还是一样哈。
我不是把放到set中的字符串连起来,我只是用set来判断是否重复.结果是按数组的顺序连接的。