2014-02-21 50 views
0
item.setPrice(e.text().replaceAll("[^\\d\\.]", "")); 

我想要替換所有字符和顯示的價格值內部發出特殊字符.....替換使用的replaceAll數字字符在java中不工作

但在一種情況下Rs.1200.20它返回的值.1200.00

我想從一開始就避開.。 我想輸出像1200.00不是.1200.00 我該怎麼做?

+0

注意:不需要轉義字符類中的點; ''[^ \\ d。]「'同樣適用於 – fge

+0

,但它並沒有給我輸出我想... – sarath

回答

2

您可以用"[^\\d]+[.]"來代替,也可以用"Rs."來代替。

+0

是的,這工作..謝謝隊友....我不想平原RS。像這樣,因爲有時你使用不同的國家數據。所以它可能是不同的輸入 – sarath

+0

@sarath你的歡迎。玩得開心編碼:) – Sanjeev

0

所有的價格假設的形式爲xxxx.yyy其中xy是數字,您可以使用此代碼:

private static final Pattern PRICE_PATTERN 
    = Pattern.compile("\\d+\\.\\d+"); 

// In code... 
final Matcher m = PRICE_PATTERN.matcher(e.text()); 

item.setPrice(m.find() ? m.group() : "INVALID"); 

無法處理所有案件(例如「1.2.3」, 「hello1.2world3.4」等等);它只會嘗試在輸入字符串中找到第一個有效價格。

+0

我的價格是在RS.120.33的形式,我想輸出像120.33。這意味着xxx.yyy.zzz其中xxx是字符和yyy和zzz是數字..我想避免xxx和第一。 – sarath