【发布时间】:2014-03-30 04:47:52
【问题描述】:
if (tokens[i].matches("[0-9]+"))
这使得它目前只能读取整个整数,直到出现空格,我如何让它也读取小数?
【问题讨论】:
if (tokens[i].matches("[0-9]+"))
这使得它目前只能读取整个整数,直到出现空格,我如何让它也读取小数?
【问题讨论】:
添加可选的小数部分:
if (tokens[i].matches("[0-9]*([.][0-9]+)?"))
使用星号使整数部分可选。然而,这个表达式的问题在于它现在可以匹配一个空字符串。更好(但更长)的表达式将匹配一个单独的子表达式中以小数点开头的字符串,如下所示:
if (tokens[i].matches("[0-9]+([.][0-9]+)?|[.][0-9]+"))
【讨论】:
[0-9]+(1 或更多)更改为[0-9]*(0 或更多)。
[.][0-9]+ 是可选的。
试试这个:
if (tokens[i].matches([0-9]+(\.[0-9][0-9]?)?)
【讨论】: