亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 詳解Java判斷是否是整數,小數或實數的正則表達式

詳解Java判斷是否是整數,小數或實數的正則表達式

熱門標簽:線上教育ai外呼系統 菏澤智能ai電銷機器人銷售公司 宿遷智能外呼系統供應商 css百度地圖標注位置顯示 實用地圖標注app 鄂州人工智能電銷機器人軟件 地圖標注字母的軟件 地圖標注商戶中心要收錢多少 400免費電話去哪申請

經常會遇到這樣的情況,需要判斷一個字符串是否是一個合法的數,包括整數,小數或者實數。

網上查到很多文章大多是判斷這個字符串是否全為數字,比如下面這段來自StringUtils的代碼,可以看到,13.2這樣的數字實際上會返回false,可是,他的確是一個數字。

  public static boolean isNumeric(String str) { 
    if (str == null) { 
      return false; 
    } 
    int sz = str.length(); 
    for (int i = 0; i  sz; i++) { 
      if (Character.isDigit(str.charAt(i)) == false) { 
        return false; 
      } 
    } 
    return true; 
  } 

當然,網上還能查到很多其他方式,諸如用正則表達式判斷是否0-9,用字符ascii碼判斷是否是數字以及用Double.parseDouble()是否拋出異常來判斷是否為數字。

事實上,除了最后一種方式能達到我們的要求,其他的都很難真正做到類似的判斷。但是最后一種方式也很難區別出到底是正整數,負整數,正小數還是負小數,而且,捕獲異常的方式實在是有些難看。

基于此原因,我自己寫了一個工具類,專門用作數的檢測,目前能夠檢測正整數,負整數,整數,正小數,負小數,小數以及實數,采用的仍然是正則表達式的方式,當然,如果有遺漏或者錯誤,歡迎聯系我以便更正,同時也歡迎修改或使用這些代碼以便符合你的應用場景。

可以簡單講下正則的思想以便修改,

1. 對于正整數而言,可以帶+號,第一個數字不能為0

2. 對于負整數而言,必須帶負號,第一個數字也不能為0

3. 對于整數而言,實際是由0,正整數和負整數組成的,所以偷個懶用前兩個方法一起判斷

4. 對于正小數而言,可以考帶+號,并考慮兩種情況,第一個數字為0和第一個數字不為0,第一個數字為0時,則小數點后面應該不為0,第一個數字不為0時,小數點后可以為任意數字

5. 對于負小數而言,必須帶負號,其余都同上

6. 對于小數,可以帶正負號,并且帶小數點就行了,但是至少保證小數點有一邊不為空,所以這里還是分左邊不為空和右邊不為空的情況

7. 實數比較簡單,,要么是整數,要么是小數

package com.sap.cesp.creditinsight.web.app.util; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
 
public class NumberValidationUtils { 
   
  private static boolean isMatch(String regex, String orginal){ 
    if (orginal == null || orginal.trim().equals("")) { 
      return false; 
    } 
    Pattern pattern = Pattern.compile(regex); 
    Matcher isNum = pattern.matcher(orginal); 
    return isNum.matches(); 
  } 
 
  public static boolean isPositiveInteger(String orginal) { 
    return isMatch("^\\+{0,1}[1-9]\\d*", orginal); 
  } 
 
  public static boolean isNegativeInteger(String orginal) { 
    return isMatch("^-[1-9]\\d*", orginal); 
  } 
 
  public static boolean isWholeNumber(String orginal) { 
    return isMatch("[+-]{0,1}0", orginal) || isPositiveInteger(orginal) || isNegativeInteger(orginal); 
  } 
   
  public static boolean isPositiveDecimal(String orginal){ 
    return isMatch("\\+{0,1}[0]\\.[1-9]*|\\+{0,1}[1-9]\\d*\\.\\d*", orginal); 
  } 
   
  public static boolean isNegativeDecimal(String orginal){ 
    return isMatch("^-[0]\\.[1-9]*|^-[1-9]\\d*\\.\\d*", orginal); 
  } 
   
  public static boolean isDecimal(String orginal){ 
    return isMatch("[-+]{0,1}\\d+\\.\\d*|[-+]{0,1}\\d*\\.\\d+", orginal); 
  } 
   
  public static boolean isRealNumber(String orginal){ 
    return isWholeNumber(orginal) || isDecimal(orginal); 
  } 
 
} 

測試用例如下:

package com.sap.cesp.creditinsight.web.app.util; 
 
import junit.framework.Assert; 
 
import org.junit.Test; 
 
public class NumberValidationUtilsTest { 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isPositiveInteger(java.lang.String)} 
   */ 
  //correct test case: 1, 87653521123567 
  //wrong test case: 0.1, 0, 0123, -1, -0.1, ab 
  @Test 
  public void testIsPositiveInteger() { 
    Assert.assertTrue(NumberValidationUtils.isPositiveInteger("1")); 
    Assert.assertTrue(NumberValidationUtils.isPositiveInteger("+12")); 
    Assert.assertTrue(NumberValidationUtils.isPositiveInteger("87653521123567")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("0.1")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("0")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("0123")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("-1")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("-0.1")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveInteger("ab")); 
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isNegativeInteger(java.lang.String)} 
   */ 
  //correct test case: -1, -87653521123567 
  //wrong test case: 0.1, 0, 0123, 1, -0.1, -ab 
  @Test 
  public void testIsNegativeInteger() { 
    Assert.assertTrue(NumberValidationUtils.isNegativeInteger("-1")); 
    Assert.assertTrue(NumberValidationUtils.isNegativeInteger("-87653521123567")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("0.1")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("0")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("0123")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("1")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("-0.1")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeInteger("ab")); 
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isWholeNumber(java.lang.String)}. 
   */ 
  //correct test case: -1, 0, 1, 8673434231, -282464334 
  //wrong test case: 0.1, 0123, -0.1, ab 
  @Test 
  public void testIsWholeNumber() { 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("-1")); 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("0")); 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("1")); 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("+12")); 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("8673434231")); 
    Assert.assertTrue(NumberValidationUtils.isWholeNumber("-282464334")); 
    Assert.assertFalse(NumberValidationUtils.isWholeNumber("0123")); 
    Assert.assertFalse(NumberValidationUtils.isWholeNumber("0.1")); 
    Assert.assertFalse(NumberValidationUtils.isWholeNumber("-0.1")); 
    Assert.assertFalse(NumberValidationUtils.isWholeNumber("ab")); 
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isPositiveDecimal(java.lang.String)} 
   */ 
  //correct test case: 0.1, 0.132213, 1.0 
  //wrong test case: 1, 0.0, 0123, -1, -0.1 
  @Test 
  public void testIsPositiveDecimal() { 
    Assert.assertTrue(NumberValidationUtils.isPositiveDecimal("0.1")); 
    Assert.assertTrue(NumberValidationUtils.isPositiveDecimal("0.132213")); 
    Assert.assertTrue(NumberValidationUtils.isPositiveDecimal("30.00")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("0.")); 
    Assert.assertTrue(NumberValidationUtils.isPositiveDecimal("+12.0")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("0123")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("1")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("0.0")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("ab")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("-1")); 
    Assert.assertFalse(NumberValidationUtils.isPositiveDecimal("-0.1")); 
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isNegativeDecimal(java.lang.String)} 
   */ 
  //correct test case: -0.132213, -1.0 
  //wrong test case: 1, 0, 0123, -1, 0.1 
  @Test 
  public void testIsNegativeDecimal() { 
    Assert.assertTrue(NumberValidationUtils.isNegativeDecimal("-0.132213")); 
    Assert.assertTrue(NumberValidationUtils.isNegativeDecimal("-1.0")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("-0.")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("1")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("0")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("0123")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("0.0")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("ab")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("-1")); 
    Assert.assertFalse(NumberValidationUtils.isNegativeDecimal("0.1")); 
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isDecimal(java.lang.String)}. 
   */ 
  //correct test case: 0.1, 0.00, -0.132213 
  //wrong test case: 1, 0, 0123, -1, 0., ba 
  @Test 
  public void testIsDecimal() { 
    Assert.assertTrue(NumberValidationUtils.isDecimal("0.1")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("0.00")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("+0.0")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("-0.132213")); 
    Assert.assertTrue(NumberValidationUtils.isDecimal("0.")); 
    Assert.assertFalse(NumberValidationUtils.isDecimal("1")); 
    Assert.assertFalse(NumberValidationUtils.isDecimal("0123")); 
    Assert.assertFalse(NumberValidationUtils.isDecimal("0")); 
    Assert.assertFalse(NumberValidationUtils.isDecimal("ab")); 
    Assert.assertFalse(NumberValidationUtils.isDecimal("-1")); 
     
  } 
 
  /** 
   * Test method for {@link com.sap.cesp.creditinsight.web.app.util.NumberValidationUtils#isRealNumber(java.lang.String)}. 
   */ 
  //correct test case: 0.032213, -0.234, 0.0, 1, -1, 0 
  //wrong test case: 00.13, ab, +0.14 
  @Test 
  public void testIsRealNumber() { 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("0.032213")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("-0.234")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("0.0")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("1")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("+0.14")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("-1")); 
    Assert.assertTrue(NumberValidationUtils.isRealNumber("0.0")); 
    Assert.assertFalse(NumberValidationUtils.isRealNumber("00.13")); 
    Assert.assertFalse(NumberValidationUtils.isRealNumber("ab")); 
     
  } 
 
} 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • java基于正則表達式實現時間日期的常用判斷操作實例
  • Java使用正則表達式判斷字符串是否以字符開始
  • Java正則表達式判斷字符串中是否包含中文示例
  • java使用正則表達式判斷郵箱格式是否正確的方法
  • java正則表達式判斷前端參數修改表中另一個字段的值

標簽:咸陽 六安 恩施 鞍山 綿陽 三亞 梅州 池州

巨人網絡通訊聲明:本文標題《詳解Java判斷是否是整數,小數或實數的正則表達式》,本文關鍵詞  詳解,Java,判斷,是否是,整數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Java判斷是否是整數,小數或實數的正則表達式》相關的同類信息!
  • 本頁收集關于詳解Java判斷是否是整數,小數或實數的正則表達式的相關信息資訊供網民參考!
  • 推薦文章
    欧美一级视频免费观看| 美女被草网站| 黄视频网站在线免费观看| 美女免费精品视频在线观看| 亚洲 国产精品 日韩| 欧美日本韩国| 成人免费一级纶理片| 麻豆系列国产剧在线观看| 天天色成人| 国产成人欧美一区二区三区的| 日韩在线观看免费完整版视频| 日韩专区亚洲综合久久| 黄色免费网站在线| 国产麻豆精品高清在线播放| 免费毛片基地| 国产国语在线播放视频| 国产伦精品一区二区三区无广告| 精品视频免费看| 精品国产一区二区三区免费| 欧美一级视频高清片| 国产极品白嫩美女在线观看看| a级精品九九九大片免费看| 日韩男人天堂| 日韩欧美一及在线播放| 成人a级高清视频在线观看| a级毛片免费观看网站| 国产伦精品一区三区视频| 成人免费观看网欧美片| 国产伦理精品| 韩国妈妈的朋友在线播放| 可以免费看毛片的网站| 免费国产在线视频| 国产视频一区二区三区四区 | 午夜久久网| 九九精品在线播放| 日韩av东京社区男人的天堂| 毛片高清| 精品视频在线看| 一本伊大人香蕉高清在线观看| 欧美激情一区二区三区在线| 欧美a级片视频| 国产麻豆精品| 999精品视频在线| 可以在线看黄的网站| 九九久久国产精品大片| 亚洲女人国产香蕉久久精品| 日韩在线观看视频黄| 免费一级生活片| 久久成人亚洲| 精品视频免费看| 国产伦理精品| 日韩专区第一页| 欧美a级大片| 国产a视频| 日韩专区一区| 国产一区二区福利久久| 91麻豆爱豆果冻天美星空| 亚洲 男人 天堂| 欧美激情影院| 久久国产精品只做精品| 精品国产一区二区三区国产馆| 精品视频在线观看一区二区| 97视频免费在线| 国产高清在线精品一区二区| 成人免费一级纶理片| 精品视频在线观看免费| 欧美大片一区| 精品视频在线看| 九九久久国产精品大片| 国产一区二区精品久久91| 精品久久久久久中文字幕2017| 成人影视在线播放| 亚洲天堂一区二区三区四区| 国产a网| 欧美大片毛片aaa免费看| 欧美激情一区二区三区在线| 99热热久久| 国产一区精品| 91麻豆精品国产片在线观看| 尤物视频网站在线| 深夜做爰性大片中文| 久草免费在线视频| 可以免费在线看黄的网站| 国产不卡精品一区二区三区| 人人干人人草| 国产一区二区精品久| 日韩在线观看视频免费| 欧美激情一区二区三区视频| 一本伊大人香蕉高清在线观看| 亚洲第一页色| 欧美α片无限看在线观看免费| 天堂网中文字幕| 欧美激情一区二区三区在线 | 欧美激情一区二区三区在线播放| 99色精品| 国产成人女人在线视频观看 | 美女免费精品视频在线观看| 美女免费精品高清毛片在线视 | 成人免费高清视频| 欧美激情中文字幕一区二区| 精品在线免费播放| 二级特黄绝大片免费视频大片| 美女被草网站| 一本伊大人香蕉高清在线观看| 国产原创中文字幕| 国产一级生活片| 国产国语对白一级毛片| a级精品九九九大片免费看| 国产视频一区二区在线播放| 韩国三级香港三级日本三级| 国产伦理精品| 天天色成人| 99久久网站| 久草免费在线视频| 日韩专区在线播放| 日韩专区第一页| 香蕉视频久久| 91麻豆精品国产自产在线| 精品国产三级a| 日本特黄特黄aaaaa大片| 99色视频| 亚欧乱色一区二区三区| 久久国产精品永久免费网站| 国产a视频| 免费一级生活片| 天天做人人爱夜夜爽2020毛片| 美女免费毛片| 国产亚洲男人的天堂在线观看| 精品久久久久久中文| 国产精品1024永久免费视频| 午夜在线影院| 成人a大片高清在线观看| 免费毛片基地| 国产韩国精品一区二区三区| 成人高清视频免费观看| 九九精品在线播放| 九九干| 韩国三级视频在线观看| 免费一级片在线观看| 免费一级生活片| 色综合久久天天综合绕观看| 麻豆网站在线看| 99久久精品费精品国产一区二区| 欧美a免费| 国产一区二区精品久久91| 欧美激情一区二区三区视频高清| 国产综合91天堂亚洲国产| 欧美激情一区二区三区视频| 成人免费观看视频| 精品久久久久久中文字幕一区 | 亚洲天堂在线播放| 四虎影视精品永久免费网站 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 色综合久久久久综合体桃花网| 美女免费毛片| 久久国产一久久高清| 国产国产人免费视频成69堂| 一本高清在线| 国产91丝袜在线播放0| 国产91精品系列在线观看| 国产一区二区精品| 91麻豆国产级在线| 欧美a级大片| 深夜做爰性大片中文| 99色精品| 国产视频一区二区三区四区 | 国产不卡在线观看视频| 九九免费高清在线观看视频| 精品视频免费看| 亚洲 欧美 91| 精品久久久久久中文字幕一区 | 四虎精品在线观看| 国产成人精品在线| 欧美激情影院| 国产91素人搭讪系列天堂| 国产91精品一区| 免费国产在线观看| 久久久久久久久综合影视网| 欧美α片无限看在线观看免费| 99色精品| 香蕉视频一级| 成人高清视频免费观看| 中文字幕一区二区三区 精品| 黄视频网站免费观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 97视频免费在线| 精品国产一区二区三区久 | 欧美另类videosbestsex| 色综合久久天天综合绕观看| 久久国产精品自线拍免费| 99久久视频| 九九久久99| 日韩在线观看视频免费| 日日日夜夜操| 久久99欧美| 999久久66久6只有精品| 精品视频一区二区三区免费| 精品视频一区二区三区| 精品毛片视频| 一级女性大黄生活片免费|