Java 如何将字符串转换为double并将其存储在两个不同的变量中?

Java 如何将字符串转换为double并将其存储在两个不同的变量中?,java,android,Java,Android,我是Java和Android新手,所以我真的不知道所有的代码和语法。我必须把字符串转换成双精度。例如,如果我有一个字符串: Double dob1,dob2; String str = "12345,56789"; 现在我必须将其转换为双格式,并希望将值存储为: dob1 = 12345 dob2 = 56789 我怎样才能做到这一点?基本方法 Double dob1,dob2; String str = "12345,56789"; String[] strSpl

我是Java和Android新手,所以我真的不知道所有的代码和语法。我必须把字符串转换成双精度。例如,如果我有一个字符串:

Double dob1,dob2;
String str = "12345,56789";
现在我必须将其转换为双格式,并希望将值存储为:

dob1 = 12345
dob2 = 56789
我怎样才能做到这一点?

基本方法

    Double dob1,dob2;
    String str = "12345,56789";

    String[] strSplit = str.split(",");

    dob1 = Double.parseDouble(strSplit[0]);
    dob2 = Double.parseDouble(strSplit[1]);

您也可以使用String.split方法而不是标记器。

如果我理解您的意思,您可以这样做-

String str = "12345,56789";
String[] arr = str.split(",");
Double dob1 = Double.valueOf(arr[0]);
Double dob2 = Double.valueOf(arr[1]);
System.out.printf("dob1=%f, dob2=%f%n", dob1, dob2);

试试这段代码,你可以在一个双数组中输入值

    String s1 = "1256,125662";

    String []arr=s1.split(",");
    double []numArr =new double[arr.length];
    for (int i = 0; i < arr.length; i++) {
        numArr[i] = Double.parseDouble(arr[i]);

    }
String s1=“1256125662”;
字符串[]arr=s1.split(“,”);
double[]numar=新的双精度[arr.length];
对于(int i=0;i
其他人已经回答了如何做到这一点,但如果您想让这成为一个更加动态的过程(能够处理两个以上的数字,而无需明确写出每个数字的代码),下面是这种方法的一个示例:

public static double[] getDoublesSeperatedByCommas(String textWithNumbers) {
    String[] textParts = textWithNumbers.split(",");
    double[] returnDoubles = new double[textParts.length];
    for (int i = 0; i < textParts.length; i++) {
        if (textParts[i].isEmpty())
            returnDoubles[i] = 0;
        else
            returnDoubles[i] = Double.parseDouble(textParts[i]);
    }
    return returnDoubles;
}
public static double[]getdoublesseperatedbycomas(字符串文本带数字){
字符串[]textParts=textWithNumbers.split(“,”);
double[]returnDoubles=新的double[textParts.length];
对于(int i=0;i
该方法将获取一个字符串(与您指定的字符串类似),并返回一个双数组,其中包含由逗号分隔的所有指定值。我还添加了一个简单的检查来查看字符串是否为空(例如:“2455653,346”)


-托马斯

你做过研究吗?如果您将其拆分为几个较小的问题,即拆分
字符串
并将
字符串
转换为
双精度
,这非常容易。从Javadoc for
StringTokenizer
-“StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。”这并不是官方反对的理由,也不会成为反对的理由。我自己认为基本上不需要切换到另一种语言(JavaRegexp)。用户必须知道所有regexp保留字符以及如何转义它们,这不会是编译器错误。如果宗教或公司编码规则需要,也可以使用String.split。
    String s1 = "1256,125662";

    String []arr=s1.split(",");
    double []numArr =new double[arr.length];
    for (int i = 0; i < arr.length; i++) {
        numArr[i] = Double.parseDouble(arr[i]);

    }
public static double[] getDoublesSeperatedByCommas(String textWithNumbers) {
    String[] textParts = textWithNumbers.split(",");
    double[] returnDoubles = new double[textParts.length];
    for (int i = 0; i < textParts.length; i++) {
        if (textParts[i].isEmpty())
            returnDoubles[i] = 0;
        else
            returnDoubles[i] = Double.parseDouble(textParts[i]);
    }
    return returnDoubles;
}