使用Hashtable對字符串進行碰撞-ZT

          Posted on 2007-07-30 16:36 my 閱讀(1390) 評論(0)  編輯  收藏 所屬分類: 個人收藏
          使用Hashtable對字符串進行碰撞

          1.在一些字符串數組中,常會有重復的記錄,比如手機號碼,我們可以通過Hashtable來對其進行過濾

          public String[] checkArray(String[] str)...{
          Hashtable<String, String> hash=new Hashtable<String, String>();

          for(int i=0;i<str.length;i++)...{
          if(!hash.containsKey(str[i])) //測試指定對象是否為此哈希表中的鍵
          hash.put(str[i], str[i]);
          }

          Enumeration enumeration=hash.keys(); //返回此哈希表中的鍵的枚舉
          String[] str_new=new String[hash.size()];
          int i=0;

          while(enumeration.hasMoreElements())...{
          str_new[i]=enumeration.nextElement().toString();
          i++;
          }
          return str_new;
          }
          示例:
          String[] mobile={"13811071500","13811071500","13811071501","13811071503","13811071501"};
          mobile=checkArray(mobile);
          for(int i=0;i<mobile.length;i++)
          System.out.println(mobile[i]);
          輸出結果為:
          13811071503
          13811071501
          13811071500

            2.A,B均為字符串數組,找出在A中存在,而在B中不存在的字符串
          public String[] compareArray(String[] A,String[] B){
          Hashtable<String, String> hash=new Hashtable<String, String>();
          Hashtable<String, String> hash_new=new Hashtable<String, String>();

          for(int i=0;i<B.length;i++)
          hash.put(B[i], B[i]);

          for(int i=0;i<A.length;i++){
          if(!hash.containsKey(A[i]))
          hash_new.put(A[i], A[i]);
          }

          String[] C=new String[hash_new.size()];
          int i=0;
          Enumeration enumeration=hash_new.keys();

          while(enumeration.hasMoreElements()){
          C[i]=enumeration.nextElement().toString();
          i++;
          }
          return C;
          }
          示例:
          String[] mobile1={"13811071500","13811071501","13811071502","13811071503","13811071504"};
          String[] mobile2={"13811071500","13811071505","13811071502","13811071506","13811071504"};
          String[] mobile3=compareArray(mobile1,mobile2);
          for(int i=0;i<mobile3.length;i++)
          System.out.println(mobile[i]);
          輸出結果:
          13811071503
          13811071501
          存在的問題:
          每次都是倒序,可以再對程序稍加改動,變成正序。

            3.將一個字符串數組中某一個特定的字符串過濾掉

          /** *//**檢驗一個字符串數組,若包含某一特定的字符串,則將該字符串從數組中刪
          除,返回剩余的字符串數組
          * @param str_array 字符串數組
          * @param str_remove 待刪除的字符串
          * @return 過濾后的字符串
          */
          public String[] removeStrFromArray(String[] str_array,String
          str_remove)...{
          Hashtable<String, String> hash=new Hashtable<String, String>();
          for(int i=0;i<str_array.length;i++)...{
          if(!str_array[i].equals(str_remove))
          hash.put(str_array[i], str_array[i]);
          }
          //生成一個新的數組
          String[] str_new=new String[hash.size()];
          int i=0;
          Enumeration enumeration=hash.keys();
          while(enumeration.hasMoreElements())...{
          str_new[i]=enumeration.nextElement().toString();
          i++;
          }
          return str_new;
          }

          posts - 63, comments - 45, trackbacks - 0, articles - 99

          Copyright © my

          主站蜘蛛池模板: 吉林市| 郑州市| 海兴县| 济宁市| 睢宁县| 习水县| 漠河县| 肃北| 北碚区| 青龙| 乐都县| 唐海县| 滦南县| 新河县| 遂川县| 舟山市| 庐江县| 奈曼旗| 出国| 青海省| 陆丰市| 宜丰县| 介休市| 剑河县| 临邑县| 临江市| 措美县| 霍邱县| 仲巴县| 新建县| 贵阳市| 寿光市| 宜宾市| 奉新县| 犍为县| 尼勒克县| 平和县| 濮阳县| 青海省| 湘西| 黔东|