如何从字符串返回double值数组?

时间:2014-03-14 19:51:25

标签: java

我想从字符串返回一个double值数组。我怎样才能做到这一点?我无法用以下内容做到....

public static double[] fillArray(String numbers)
{
    String[] answers = numbers.split(",");


    double[] boom = new double[answers];

    for (int index = 0; index < answers.length; index++)
    {
        System.out.println(answers[index]);
    }

    return boom;
}

4 个答案:

答案 0 :(得分:4)

首先,您必须使用length来获取数组的长度。

double[] boom = new double[answers.length];

然后,在循环内,将String转换为double

boom[index] = Double.parseDouble(answers[index]);

最后,使用try-catch或从exception

的方法中抛出parseDouble()

答案 1 :(得分:3)

首先double[] boom = new double[answers]没有意义,因为answers是一个数组。你想做的事:

double[] boom = new double[answers.length];
for (int i = 0; i < answers.length; ++i) {
  boom[i] = Double.valueOf(answers[i]);
}

您使用Double.valueOf将字符串转换为double。请注意,如果字符串无法解析为double,则该方法可以引发NumberFormatException

答案 2 :(得分:2)

请注意,您很快就可以使用在一行中执行此操作:

public static double[] fillArray(String numbers){
     return Arrays.stream(numbers.split(","))
                  .mapToDouble(Double::parseDouble)
                  .toArray();
}

答案 3 :(得分:1)

您需要将每个String转换为double。

您可以使用Double(String s)构造函数或parseDouble(String s)

执行此操作
public static double[] fillArray(String numbers)
{
    double[] boom = new double[answer.length];
    String[] answers = numbers.split(",");

    for (int i = 0; i < answers.length; i++) {
       boom[i] = Double.parseDouble(answers[i]);
    }

    for (int index = 0; index < answers.length; index++)
    {
        System.out.println(answers[index]);
    }

    return boom;
}