2011-02-16 71 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+)