Javaphua Blog

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            46 Posts :: 5 Stories :: 46 Comments :: 0 Trackbacks

           

           java中判斷字符串是否為數(shù)字的三種方法
          1用JAVA自帶的函數(shù)
          public static boolean isNumeric(String str){
            
          for (int i = str.length();--i>=0;){   
             
          if (!Character.isDigit(str.charAt(i))){
              
          return false;
             }
            }
            
          return true;
           }

          2用正則表達式
          public static boolean isNumeric(String str){
              Pattern pattern = Pattern.compile("[0-9]*");
              return pattern.matcher(str).matches();   
           }

          3用ascii碼

          public static boolean isNumeric(String str){
             for(int i=str.length();--i>=0;){
                int chr=str.charAt(i);
                if(chr<48 || chr>57)
                   return false;
             }
             return true;
          }
          posted on 2007-06-05 14:17 Javaphua 閱讀(121556) 評論(23)  編輯  收藏

          Feedback

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2008-10-21 09:24 dong
          xiexie  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2009-01-14 09:56 aaa
          @dong
          怎么你們所謂的判斷數(shù)字,就都是個正整數(shù)呢,負數(shù)不屬于數(shù)字么?所有的方法都吧負數(shù)做為非數(shù)字判斷了,可以提供個也可以判斷負數(shù)的判斷函數(shù)么.  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2009-03-17 09:23 microjava
          你就不知道自己加個負號的判斷啊  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2009-04-01 23:09 匿名
          chr==46 小數(shù)也可以
          多謝樓主提供的解決方案
          稍加修改就可以適應我的需求了 ^_^  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2010-05-14 15:00 姓名
          return str.matches("\\d*");  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2010-12-21 10:14 sam
          怎么都這樣,很明顯至少第二/三種是只適用正整數(shù);
            回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2010-12-21 10:25 sam
          為什么Java不提供一個這樣的方法了,假如提供,估計不會使用第二種類似的方案(估計性能不夠做庫函數(shù));  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2012-05-18 11:49 吳九生
          //這才是最地道的
          public static boolean isNumeric(String str){
          try {
          Integer.parseInt(str);
          return true;
          } catch (NumberFormatException e) {
          // TODO Auto-generated catch block
          return false;
          }
          }  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2012-07-25 11:41
          ^(-)?\d+(\.\d+)?$  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2013-03-18 15:28 KING
          @吳九生
          明顯不行,long和double是不是也是數(shù)字.  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2013-11-28 09:30 吳波
          @吳九生

          try...catch 不適合做這種處理,try...catch影響性能,在高并發(fā)高效率的項目中,這是不被允許的!  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2013-12-02 16:16 ket
          樓主這第二種方法是有問題的,不能判斷  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-03-25 22:17 LLC
          實不相瞞,樓主第一種和第三種嚴重有誤,比如“21qw12”就返回true  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-04-25 10:34 XiaoCheng_wu
          把第二種方法的正則改一下
          public static boolean isNumeric(String str){
          Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
          return pattern.matcher(str).matches();
          }   回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-06-26 15:01 XXXX
          @XiaoCheng_wu
          如果是科學計數(shù)法表示的數(shù)字字符串,上面的正則表達式就不適用了。
          如“0E-12"這樣的字符串  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2014-07-11 11:28 123123
          。。。。@XXXX
            回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 [未登錄] 2014-07-11 11:29 123123
          你妹啊@XXXX
            回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-07-24 23:56 好人
          @吳九生
          頂 !!  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-08-03 19:34 LL
          實不相瞞,思想太局限了。為什么所謂的數(shù)字一定要是正整數(shù)?難道實數(shù)就不是數(shù)字嗎?  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2014-11-27 10:38 Perter
          @吳九生
          我贊成這個,叼叼叼叼,最確切的應該用parseFloat  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2015-04-21 09:44 zuidaima
          java正則判斷字符串是否是由純數(shù)字組成的問題
          http://zuidaima.com/question/1931119473249280.htm  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2015-04-27 15:30 寂寞在明天
          public static boolean isNumber(String str)
          {
          if(str==null||str.length()<=0)
          return false;
          String reg="([+-]{0,1}0\\.\\d+)|([+-]{0,1}[1- 9]\\d*\\.\\d+)|([+-]{0,1}[1-9]\\d*)|([+-]{0,1}0)";
          return str.matches(reg);
          }

          說明一下:1.需要驗證+—號
          2.需要驗證小數(shù)點
          3.小數(shù)必須合法,譬如0.1合法,0.2.0和00.2不合法
          4.必須對0驗證,當然+0和-0也是合法的  回復  更多評論
            

          # re: [轉(zhuǎn)]java中判斷字符串是否為數(shù)字的三種方法 2015-04-27 15:34 寂寞在明天
          對于上面的程序說明下:第一個|之前對0.xx驗證。第二個|之前的對類似22.xx驗證。第三個|對整數(shù)驗證。第四個對0驗證。
          寫的不對的地方大家指出。  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 烟台市| 黄龙县| 湘潭市| 鄂托克前旗| 黄石市| 屏南县| 宁南县| 青阳县| 肥东县| 河北省| 普洱| 方城县| 崇义县| 青铜峡市| 保康县| 饶阳县| 乌鲁木齐市| 久治县| 安义县| 富顺县| 宜昌市| 海伦市| 新宁县| 商南县| 中西区| 乐清市| 张家界市| 湟源县| 建宁县| 望城县| 潮州市| 尼勒克县| 岳普湖县| 汉川市| 新乡县| 中阳县| 霍城县| 苍溪县| 石门县| 乌拉特后旗| 正定县|