如何让我的令牌接受带小数的数字

时间:2014-03-30 04:47:52

标签: java regex token

if (tokens[i].matches("[0-9]+"))

这使得它目前只读取整个整数,直到出现空格,我如何让它读取小数?

2 个答案:

答案 0 :(得分:3)

添加可选的小数部分:

if (tokens[i].matches("[0-9]*([.][0-9]+)?"))

使用星号将整数部分设为可选。但是,这个表达式的问题是现在它可以匹配一个空字符串。更好(但更长)的表达式将匹配在单独的子表达式中以小数点开头的字符串,如下所示:

if (tokens[i].matches("[0-9]+([.][0-9]+)?|[.][0-9]+"))

答案 1 :(得分:0)

试试这个:

if (tokens[i].matches([0-9]+(\.[0-9][0-9]?)?)