将格式化字符串转换为双精度字符串,反之亦然
我需要将格式化字符串转换为双精度字符串,反之亦然。将格式化字符串转换为双精度字符串,反之亦然
$ 40.00将是40.00(反之亦然)
$ 80,000.00将是80000.00(反之亦然)
到目前为止,我可以格式化字符串,通过取出的美元符号和逗号,但我可以将双精度值转换为格式化的字符串,并在正确的位置放置美元符号和逗号。
如果我理解你,你可以用一个DecimalFormat
像
public static void main(String[] args) {
NumberFormat nf = new DecimalFormat("$#,###.00");
String[] arr = { "$40.00", "$80,000.00" };
for (String str : arr) {
try {
double dbl = nf.parse(str).doubleValue();
System.out.printf("%s = %.2f and %s%n", str, dbl,
nf.format(dbl));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出做到这一点是
$40.00 = 40.00 and $40.00
$80,000.00 = 80000.00 and $80,000.00
更换所有的美元和使用Regualar表达什么也没有昏迷。正则表达式是一种非常有用的技巧,而且非常容易学习。这个是cheat sheet。它相当容易学习。尝试拿出一些东西,如果你卡在某处伸手可及
然后使用Double.parseDouble包装类方法将字符串转换为double。
当Java已经为您提供'NumberFormat'时,没有必要去使用这种技术并使用正则表达式。 – 2014-11-03 15:16:06
它只是完成这个的另一种方式。我经常用它来进行字符串操作 – Chiseled 2014-11-03 15:17:35
http://docs.oracle.com/javase/8/docs/api/java/text/NumberFormat.html#getCurrencyInstance-java.util.Locale- – msrd0 2014-11-03 15:13:24
我建议您搜索[formatting currency](http ://*.com/search?q = [java] +格式+货币)并阅读一点。 – 2014-11-03 15:13:32
[Java中的货币格式化]可能的重复(http://*.com/questions/3075743/usd-currency-formatting-in-java) – anotherdave 2014-11-03 15:16:22