Java中的字符串加倍

时间:2010-12-21 12:19:05

标签: java

我的Java应用程序中有双数字。我需要将String转换为Double,但是数字的字符串表示是

  

, - 分隔数字的小数部分(   例如1,5 eq 6/4)

     

。 - 分隔三位数组(   例如1.000.000 eq 1000000)

。 如何将String转换为Double?

5 个答案:

答案 0 :(得分:5)

以下是使用DecimalFormat解决问题的一种方法,无需担心区域设置。

import java.text.*;

public class Test {

    public static void main(String[] args) throws ParseException {

        DecimalFormatSymbols dfs = new DecimalFormatSymbols();
        dfs.setGroupingSeparator('.');
        dfs.setDecimalSeparator(',');

        DecimalFormat df = new DecimalFormat();
        df.setGroupingSize(3);

        String[] tests = { "15,151.11", "-7,21.3", "8.8" };
        for (String test : tests)
            System.out.printf("\"%s\" -> %f%n", test, df.parseObject(test));
    }
}

输出:

"15,151.11" -> 15151.110000
"-7,21.3" -> -721.300000
"8.8" -> 8.800000

答案 1 :(得分:3)

看起来德语区域设置具有该数字格式。

Double d = (Double) NumberFormat.getInstance(Locale.GERMAN).parse(s);

答案 2 :(得分:1)

在DecimalFormat中使用parse方法。

答案 3 :(得分:1)

您需要摆脱,并将,替换为.

String s = "1000.000,15";
double d = Double.valueOf(s.replaceAll("\\.", "").replaceAll("\\,", "."));   
System.out.print(d);

答案 4 :(得分:-1)

DecimalFormat是你的朋友。