对于一个项目,我必须将一个字符串数组拆分成单独的数字,然后通过将数字解析成一个双数组来设置一个序列。
这是我到目前为止的代码:
import java.util.ArrayList;
public class Sequence
{
// the numbers in the sequence
private double[] sequence;
// sets up sequence by parsing s
public Sequence(String s)
{
String[] numbers = s.split(", ");
double[] storage = new double [numbers.length];
for (int x = 0; x < numbers.length; x = x+1) {
storage = Double.parseDouble(numbers[x]);
}
}
出于某种原因,当我尝试编译时,我收到错误
不兼容的类型:double无法转换为double []
我在网上寻找解决方案,但我是Java的初学者,真的不知道该怎么做。
为什么我会收到此错误以及如何解决此问题,尤其是在不必添加其他我不理解的方法的情况下?
提前致谢
答案 0 :(得分:2)
待办事项
storage[x] = Double.parseDouble(numbers[x]);
来自docs
public static double parseDouble(String s)
返回初始化为该值的新double 由指定的String表示,由valueOf执行 类Double的方法。
和存储是一个数组,因此编译器会说incompatible types:double cannot be converted to double[]
。您可以通过指定数组索引storage[index]
逐个存储每个元素。
答案 1 :(得分:0)
storage
是您存储内容的数组。它的类型为double[]
。您正在做的是通过调用此声明将double
分配给double[]
:
storage = Double.parseDouble(numbers[x]);
您希望将每个单独的元素存储在存储数组中,作为数字数组中某些其他元素的解析结果。请改用此语法:
storage[x] = Double.parseDouble(numbers[x]);
答案 2 :(得分:0)
storage是一个包含double值的Array,而Double.parseDouble返回一个double,因此你应该使用
storage [x] = Double.parseDouble(numbers [x]);