使用matcher()匹配字符串中的小数

我对匹配器有疑问。 目前我正在尝试读取一个字符串并将所有数字存储到一个数组中。 我的问题是,你如何尝试匹配整数和小数?

我有一系列双打叫:

double [] thisArray = new double [20];

在这个数组中,我试图存储我从字符串中提取的所有数字。

Matcher temp = Pattern.compile(“(\ d +)”)。matcher(x);

这是我对匹配器的function。 但这只匹配整数。 我想匹配整数和小数,如(5.2)。 但是我该怎么做? 我希望能够将整数和小数输入到我的字符串中。

任何帮助,将不胜感激。 谢谢!

这将处理整数和小数: –

private Pattern p = Pattern.compile("\\d+(\\.\\d+)?"); @Test public void testInteger() { Matcher m =p.matcher("10"); assertTrue(m.find()); assertEquals("10", m.group()); } @Test public void testDecimal() { Matcher m =p.matcher("10.99"); assertTrue(m.find()); assertEquals("10.99", m.group()); } 

短语\d+将匹配一串数字。 那么在两个之间添加一个点呢? (\d+)|(\d+|\.\d+)