使用Hashtable對字符串進(jìn)行碰撞-ZT

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

          1.在一些字符串?dāng)?shù)組中,常會有重復(fù)的記錄,比如手機(jī)號碼,我們可以通過Hashtable來對其進(jìn)行過濾

          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]);
          輸出結(jié)果為:
          13811071503
          13811071501
          13811071500

            2.A,B均為字符串?dāng)?shù)組,找出在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]);
          輸出結(jié)果:
          13811071503
          13811071501
          存在的問題:
          每次都是倒序,可以再對程序稍加改動,變成正序。

            3.將一個(gè)字符串?dāng)?shù)組中某一個(gè)特定的字符串過濾掉

          /** *//**檢驗(yàn)一個(gè)字符串?dāng)?shù)組,若包含某一特定的字符串,則將該字符串從數(shù)組中刪
          除,返回剩余的字符串?dāng)?shù)組
          * @param str_array 字符串?dāng)?shù)組
          * @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]);
          }
          //生成一個(gè)新的數(shù)組
          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

          主站蜘蛛池模板: 宿州市| 泰和县| 县级市| 乐昌市| 南开区| 灯塔市| 阿荣旗| 长岭县| 石楼县| 通辽市| 博乐市| 湘西| 田林县| 瓦房店市| 高尔夫| 精河县| 朝阳县| 光山县| 游戏| 东乡县| 喀什市| 韶关市| 曲水县| 大庆市| 临沂市| 雅安市| 财经| 台湾省| 东海县| 云和县| 浏阳市| 清新县| 谢通门县| 邵武市| 鱼台县| 舒城县| 桦甸市| 永平县| 西充县| 榆社县| 郴州市|