zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0
转载 自http://www.blogjava.net/fastzch/archive/2006/04/11/40507.html?Pending=true#Post


1、去掉一个字符串数组中的重复项
:(2006.04.11.)
原来采用的方法:
 1 String[] rid = request.getParameterValues("noattRid");
 2 //需要用一个临时的变量把过滤后的结果这个存起来
 3 String[] ridFiltered = new String[rid.length];
 4         int index = 0;
 5         for (int i = 0; i < rid.length; i++) {
 6             if (!this.isExistString(ridFiltered, rid[i])&&!rid[i].equals("")) {
 7                 ridFiltered[index++= rid[i];
 8             }
 9         }
10 
11 //还需要用一个方法来判断在结果中是否存在此项,如下
12  /**
13      * 用于查找某个字符串是否在一个字符串数组中
14      * @param dest String[]
15      * @param str String
16      * return boolean
17      */
18 
19     public boolean isExistString(String[] dest, String str) {
20         boolean flag = false;
21         for (int i = 0; i < dest.length; i++) {
22             if (str.equals(dest[i])) {
23                 flag = true;
24             }
25         }
26         return flag;
27     }

看看,要多麻烦有多麻烦,来看看新方法:
1 String[] s = request.getParameterValues("noattRid");
2 List list = Arrays.asList(s);
3 Set set = new HashSet(list);
4 rid=(String [])set.toArray();
简简单单的三行代码即可搞定,无论是从程序的可读性、优雅性还是效率方面都有很好的提升。
扩展:你同时还可以运用上面的方法还判断三个字符串是否相等(可进一步扩展至多个,但是似乎不太有实际意义),例程如下:
1 String[] s = {"one""two""two"};
2 List list = Arrays.asList(s);
3 Set set = new HashSet(list);
4 System.out.println(list.size() == set.size()); // false


|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2006-04-13 09:38 zhyiwww 阅读(5187) 评论(5)  编辑  收藏 所属分类: java basic

FeedBack:
# re: 去掉一个字符串数组中的重复项[未登录]
2007-06-18 15:51 | 木木
使用set比较偷懒哦  回复  更多评论
  
# re: 去掉一个字符串数组中的重复项
2009-03-27 11:18 | sss
List list = Arrays.asList(s);
Set set = new HashSet(list);
rid = (String[])set.toArray(new String[0]);
类型转换的时候更好一些!  回复  更多评论
  
# re: 去掉一个字符串数组中的重复项
2012-05-21 14:44 | 在桥边
@sss
不错。直接用toArray会出错。  回复  更多评论
  
# re: 去掉一个字符串数组中的重复项
2013-09-16 14:34 | 王以顺
string[] name = typename.ToString().Split(' ');
//用双循环进行对比比出相同的项
for (int i = 0; i < name.Length; i++)
{
for (int j = name.Length - 1; j > i; j--)
{
if (name[i] == name[j])
{
name[j] = "";
}
}
row["tyname"] += name[i]+" ";
}  回复  更多评论
  
# re: 去掉一个字符串数组中的重复项
2013-09-27 10:40 | 魏磊
@王以顺
请问是王以顺是天津的么?曾经高中的同学和你名字一样  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: