删除java String[]数组中重复值
如:有动态数组String[]strs={"甲供=0","自购=0","甲控=0","调入=0","采购站=0","材料厂=0","材料厂=200","调入=199","...
如:有动态数组String[] strs={"甲 供=0","自 购=0","甲 控=0","调 入=0","采购站=0","材料厂=0","材料厂=200"," 调 入=199"," 甲 控=150"}
去除数组当中“=”前面汉字相同的元素,
我想要得到的结果是:
String[] st={"甲 供=0","自 购=0","采购站=0","材料厂=200"," 调 入=199"," 甲 控=150"}
请问大侠,这个问题怎么解决呢? 展开
去除数组当中“=”前面汉字相同的元素,
我想要得到的结果是:
String[] st={"甲 供=0","自 购=0","采购站=0","材料厂=200"," 调 入=199"," 甲 控=150"}
请问大侠,这个问题怎么解决呢? 展开
6个回答
展开全部
String result = "";
Set<String> set = new HashSet<String>(); set集合是不重复的集合。
for( String s : strs)
{
String s2 = (s.split("="))[0].trim(); //取“=”号前面的部分
if(set.add(s2)) //如果能添加进去,说明没有重复
{
result += s+",";
}
}
result = result.substring(0,result.length-1); 去掉最后一个“,”号
String[] st = result.split(",");
最后的st就是你要的结果 。
不好意思,把代码写出来了, 刚set写错位置了,该一下 。
还忽略了一个问题,您=号后面是有值的,几个前面相同的,后面数值不相同,您的数值是要怎么处理打算, 你补充下,我再给你该程序
Set<String> set = new HashSet<String>(); set集合是不重复的集合。
for( String s : strs)
{
String s2 = (s.split("="))[0].trim(); //取“=”号前面的部分
if(set.add(s2)) //如果能添加进去,说明没有重复
{
result += s+",";
}
}
result = result.substring(0,result.length-1); 去掉最后一个“,”号
String[] st = result.split(",");
最后的st就是你要的结果 。
不好意思,把代码写出来了, 刚set写错位置了,该一下 。
还忽略了一个问题,您=号后面是有值的,几个前面相同的,后面数值不相同,您的数值是要怎么处理打算, 你补充下,我再给你该程序
更多追问追答
追问
把0用数字覆盖掉
如; 数组中有以下2个元素,
调 入=0
调 入=199,则就用: 调 入=199覆盖:
调 入=0
这个元素。
追答
是0和199相加呢,还是说,删除0呢?
如果是: 调入=2,调入=3,调入=4,这样的话,你留哪个?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以将数组中的元素依次提取出来并使用split这个方法按“=”拆分,然后进行比较再去掉你想要的删除的那个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遍历数组strs[]
Map map = new HashMap();
str=strs[i]
str[] values = str.split("=");
map.put(values[0],values[1]);
然后再把map逆向转换为 strs数组就行了。
Map map = new HashMap();
str=strs[i]
str[] values = str.split("=");
map.put(values[0],values[1]);
然后再把map逆向转换为 strs数组就行了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-24
展开全部
Distinct()
追问
?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询