java 去掉非数字_Java String删除所有非数字字符

货币小数点分隔符可以与区域设置不同。 将import java.text.DecimalFormatSymbols;始终视为分隔符可能很危险。即

╔════════════════╦═══════════════════╗

║ Currency ║ Sample ║

╠════════════════╬═══════════════════╣

║ USA ║ $1,222,333.44 USD ║

║ United Kingdom ║ £1.222.333,44 GBP ║

║ European ║ €1.333.333,44 EUR ║

╚════════════════╩═══════════════════╝

我认为正确的方法是:

默认情况下,通过import java.text.DecimalFormatSymbols;获取十进制字符Locale或指定的。

使用十进制字符烹饪正则表达式模式以便仅获取数字

在这里我是如何解决它的:

import java.text.DecimalFormatSymbols;

import java.util.Locale;

码:

public static String getDigit(String quote, Locale locale) {

char decimalSeparator;

if (locale == null) {

decimalSeparator = new DecimalFormatSymbols().getDecimalSeparator();

} else {

decimalSeparator = new DecimalFormatSymbols(locale).getDecimalSeparator();

}

String regex = "[^0-9" + decimalSeparator + "]";

String valueOnlyDigit = quote.replaceAll(regex, "");

try {

return valueOnlyDigit;

} catch (ArithmeticException | NumberFormatException e) {

Log.e(TAG, "Error in getMoneyAsDecimal", e);

return null;

}

return null;

}

我希望这可能有所帮助,'。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值