我想从字符串返回一个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;
}
答案 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)
请注意,您很快就可以使用java-8在一行中执行此操作:
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;
}