zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0
          轉(zhuǎn)載 自http://www.aygfsteel.com/fastzch/archive/2006/04/11/40507.html?Pending=true#Post


          1、去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)
          :(2006.04.11.)
          原來采用的方法:
          ?1?String[]?rid?=?request.getParameterValues("noattRid");
          ?2?//需要用一個(gè)臨時(shí)的變量把過濾后的結(jié)果這個(gè)存起來
          ?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?//還需要用一個(gè)方法來判斷在結(jié)果中是否存在此項(xiàng),如下
          12??/**
          13??????*?用于查找某個(gè)字符串是否在一個(gè)字符串?dāng)?shù)組中
          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();
          簡(jiǎn)簡(jiǎn)單單的三行代碼即可搞定,無論是從程序的可讀性、優(yōu)雅性還是效率方面都有很好的提升。
          擴(kuò)展:你同時(shí)還可以運(yùn)用上面的方法還判斷三個(gè)字符串是否相等(可進(jìn)一步擴(kuò)展至多個(gè),但是似乎不太有實(shí)際意義),例程如下:
          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


          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請(qǐng)注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-04-13 09:38 zhyiwww 閱讀(5229) 評(píng)論(5)  編輯  收藏 所屬分類: java basic

          FeedBack:
          # re: 去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)[未登錄]
          2007-06-18 15:51 | 木木
          使用set比較偷懶哦  回復(fù)  更多評(píng)論
            
          # re: 去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)
          2009-03-27 11:18 | sss
          List list = Arrays.asList(s);
          Set set = new HashSet(list);
          rid = (String[])set.toArray(new String[0]);
          類型轉(zhuǎn)換的時(shí)候更好一些!  回復(fù)  更多評(píng)論
            
          # re: 去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)
          2012-05-21 14:44 | 在橋邊
          @sss
          不錯(cuò)。直接用toArray會(huì)出錯(cuò)。  回復(fù)  更多評(píng)論
            
          # re: 去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)
          2013-09-16 14:34 | 王以順
          string[] name = typename.ToString().Split(' ');
          //用雙循環(huán)進(jìn)行對(duì)比比出相同的項(xiàng)
          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]+" ";
          }  回復(fù)  更多評(píng)論
            
          # re: 去掉一個(gè)字符串?dāng)?shù)組中的重復(fù)項(xiàng)
          2013-09-27 10:40 | 魏磊
          @王以順
          請(qǐng)問是王以順是天津的么?曾經(jīng)高中的同學(xué)和你名字一樣  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 开原市| 平原县| 酒泉市| 永昌县| 灵宝市| 马鞍山市| 平利县| 田东县| 马边| 金湖县| 宜昌市| 竹北市| 西平县| 蒙自县| 平陆县| 海林市| 泊头市| 北宁市| 河曲县| 客服| 鄯善县| 读书| 清原| 呼图壁县| 康马县| 泸定县| 安庆市| 于都县| 临城县| 佛冈县| 诸暨市| 栾城县| 桐柏县| 中西区| 修文县| 普陀区| 凌云县| 兴仁县| 商南县| 二手房| 海盐县|