zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0
          轉載 自http://www.aygfsteel.com/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.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-04-13 09:38 zhyiwww 閱讀(5229) 評論(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 | 魏磊
          @王以順
          請問是王以順是天津的么?曾經高中的同學和你名字一樣  回復  更多評論
            
          主站蜘蛛池模板: 灵武市| 尉氏县| 晋城| 金秀| 体育| 庆元县| 博客| 五大连池市| 合水县| 贞丰县| 西城区| 溆浦县| 深水埗区| 庆安县| 澄城县| 农安县| 电白县| 措勤县| 延安市| 安岳县| 天峻县| 泾阳县| 巧家县| 吐鲁番市| 邯郸县| 房山区| 桑植县| 南城县| 乌什县| 邵阳县| 鄢陵县| 克什克腾旗| 高邮市| 黔江区| 吉安县| 武隆县| 高清| 丹东市| 林周县| 盖州市| 滨海县|