我想将字符串(例如$ 2,480.00,$ 1.22)转换为浮点值(期望结果:2480.00,1.22)。 哪种方式最好呢? 通过循环,留下字符串数字和'。'或者也许是正则表达式?
答案 0 :(得分:0)
您可以拆分字符串,然后根据需要使用您的数字:
String str = "$2,480.00";
str = str.replaceAll("[^-?0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));
输出:
[2, 480, 00]
答案 1 :(得分:0)
String s = "$2,480.00";
float num = NumberFormat.getInstance()
.parse(s.substring(1))
.floatValue();
System.out.println(num);
我假设数字始终以货币符号
开头,
和.
s 如果你这样做,你可能会遇到国际号码格式的问题,其中一些会改变点和逗号的含义。
在加拿大英语中,句点用作小数点,标记(或空格)用于分隔三个数字。例如,26,000读取为26,000。
在法语和许多其他语言中,逗号表示小数,因此26,000读取为26。这与盎格鲁如何解释它有很大的不同!用法语写二万六千的正确方法是26 000或26000。 source
答案 2 :(得分:0)
在删除非数字和非点字符后,只需将字符串解析为float:
float money = Float.parseFloat("$2,480.00".replaceAll("[^\\d.]", ""));