使用replaceAll在java中不起作用从数字替换字符

时间:2014-02-21 10:08:16

标签: java string replace

item.setPrice(e.text().replaceAll("[^\\d\\.]", ""));

我想替换显示价格值.....里面的所有角色和特殊字符。

但在一个案例Rs.1200.20中,它返回值.1200.00

我想从一开始就避免使用.。 我想输出 1200.00 而不是 .1200.00  我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用"[^\\d]+[.]"替换它,也可以使用普通"Rs."进行替换。

答案 1 :(得分: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”等);它只会尝试在输入字符串中找到第一个有效价格。