我需要將格式化字符串轉換爲雙精度字符串,反之亦然。將格式化字符串轉換爲雙精度字符串,反之亦然
$ 40.00將是40.00(反之亦然)
$ 80,000.00將是80000.00(反之亦然)
到目前爲止,我可以格式化字符串,通過取出的美元符號和逗號,但我可以將雙精度值轉換爲格式化的字符串,並在正確的位置放置美元符號和逗號。
我需要將格式化字符串轉換爲雙精度字符串,反之亦然。將格式化字符串轉換爲雙精度字符串,反之亦然
$ 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 ://stackoverflow.com/search?q = [java] +格式+貨幣)並閱讀一點。 – 2014-11-03 15:13:32
[Java中的貨幣格式化]可能的重複(http://stackoverflow.com/questions/3075743/usd-currency-formatting-in-java) – anotherdave 2014-11-03 15:16:22