Javaphua Blog

          BlogJava 首頁(yè) 新隨筆 聯(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用正則表達(dá)式
          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 閱讀(121554) 評(píng)論(23)  編輯  收藏

          Feedback

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

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

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

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

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

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

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

          # 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;
          }
          }  回復(fù)  更多評(píng)論
            

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

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

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

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

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

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

          # 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();
          }   回復(fù)  更多評(píng)論
            

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

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

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

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

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

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

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

          # 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);
          }

          說(shuō)明一下:1.需要驗(yàn)證+—號(hào)
          2.需要驗(yàn)證小數(shù)點(diǎn)
          3.小數(shù)必須合法,譬如0.1合法,0.2.0和00.2不合法
          4.必須對(duì)0驗(yàn)證,當(dāng)然+0和-0也是合法的  回復(fù)  更多評(píng)論
            

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桐梓县| 达日县| 拉萨市| 大姚县| 称多县| 沁水县| 嫩江县| 石河子市| 锡林浩特市| 灌南县| 上思县| 苏尼特右旗| 武穴市| 阿巴嘎旗| 迭部县| 左贡县| 安达市| 泸定县| 沭阳县| 布拖县| 岳普湖县| 称多县| 兴和县| 武城县| 徐闻县| 临夏市| 兰西县| 偃师市| 德兴市| 仁怀市| 阳春市| 岳阳县| 秦安县| 蓝田县| 泸水县| 上蔡县| 安泽县| 吉木乃县| 大方县| 政和县| 呼伦贝尔市|