2011-02-16 69 views
1

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

我有称为double数组:

双[] thisArray =新双[20];

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

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

这是我的匹配器功能。但是这只能匹配整数。我想匹配像(5.2)这样的整数和小数。但我该怎么做?我希望能够在我的字符串中输入整数和小数。

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

回答

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()); 
} 
+0

我看你有什么就有什么,你有本身既是一个数字,也是\\ d +是可选的。谢谢你的作品! – Eric 2011-02-16 02:47:54

0

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