我对匹配器有疑问。目前我正在尝试读取字符串并将所有数字存储到数组中。我的问题是,你如何尝试匹配整数和小数?
我有一系列双打叫:
double [] thisArray = new double [20];
在这个数组中,我试图存储我从字符串中提取的所有数字。
匹配器临时= Pattern.compile( “(\ d +)”)匹配(X);
这是我对匹配器的功能。但这只匹配整数。我想匹配整数和小数,如(5.2)。但是我该怎么做?我希望能够将整数和小数输入到我的字符串中。
任何帮助将不胜感激。谢谢!
答案 0 :(得分: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());
}
答案 1 :(得分:0)
短语\d+
将匹配一串数字。那么在两个之间添加一个点呢? (\d+)|(\d+|\.\d+)