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 | 魏磊
          @王以順
          請問是王以順是天津的么?曾經高中的同學和你名字一樣  回復  更多評論
            
          主站蜘蛛池模板: 绥滨县| 东丽区| 凭祥市| 厦门市| 临泽县| 徐水县| 宿迁市| 芦山县| 普陀区| 昆山市| 松滋市| 甘孜县| 石林| 黄骅市| 安新县| 肃南| 临泽县| 遵化市| 阿图什市| 洛宁县| 囊谦县| 宣汉县| 双桥区| 广德县| 法库县| 略阳县| 榆中县| 厦门市| 葵青区| 防城港市| 将乐县| 石渠县| 东丰县| 綦江县| 临猗县| 河南省| 思茅市| 石屏县| 阳谷县| 石柱| 保亭|