Java直接根據正則表達式判斷是否是double類型數字

  目前有一個需求是根據一個字符串,判斷該字符串是否是double類型數字,在網上找了很久,找了很多方案都發現不能完整判斷,我是需要先通過正則判斷,再利用new BigDecimal(str);來轉成數字的,爲了不出錯,需要之前判斷一下該字符串是否是數字。後來就自己寫了一個出來,作爲記錄,也爲了防止出錯,放在這裏,讓大家校驗一下。如果有錯,請留言。


private final static Pattern NUMBER_PATTERN = Pattern.compile("([+\\-]?[0-9]*[.]?[\\d]*)");

    /**
     * 判斷是不是數字
     **/
    @Test
    public void testNum() {
        Assert.assertTrue(NUMBER_PATTERN.matcher("-090").matches());
        Assert.assertTrue(!NUMBER_PATTERN.matcher("0.9.0").matches());
        Assert.assertTrue(NUMBER_PATTERN.matcher("09.0").matches());
        Assert.assertTrue(NUMBER_PATTERN.matcher("2343249.234324").matches());
        Assert.assertTrue(NUMBER_PATTERN.matcher("-2343249.234324").matches());
        Assert.assertTrue(!NUMBER_PATTERN.matcher("--2343249.234324").matches());
        Assert.assertTrue(NUMBER_PATTERN.matcher("1090").matches());
        Assert.assertTrue(NUMBER_PATTERN.matcher("-090").matches());
        Assert.assertTrue(!NUMBER_PATTERN.matcher("0-a90").matches());
        Assert.assertTrue(!NUMBER_PATTERN.matcher("09a0").matches());
        Assert.assertTrue(!NUMBER_PATTERN.matcher("09-0").matches());

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章