item.setPrice(e.text().replaceAll("[^\\d\\.]", ""));
我想替换显示价格值.....里面的所有角色和特殊字符。
但在一个案例Rs.1200.20
中,它返回值.1200.00
我想从一开始就避免使用.
。
我想输出 1200.00 而不是 .1200.00
我怎样才能做到这一点?
答案 0 :(得分:2)
您可以使用"[^\\d]+[.]"
替换它,也可以使用普通"Rs."
进行替换。
答案 1 :(得分:0)
假设您的所有价格均采用xxxx.yyy
形式,其中x
和y
是数字,您可以使用以下代码:
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”等);它只会尝试在输入字符串中找到第一个有效价格。