无法将double转换为double [] error
问题描述:
对于一个项目,我必须将一个字符串数组拆分为单独的数字,然后通过将数字解析为一个双数组来设置一个序列。无法将double转换为double [] error
这是我的代码至今:
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 []
我已经在线寻找解决方案,但我是一个完整的初学者在Java,真的不知道该怎么做。
为什么我得到这个错误,我该如何解决它,特别是不必添加其他我不明白的方法?
在此先感谢
答
做
storage[x] = Double.parseDouble(numbers[x]);
从docs
公共静态双parseDouble(String s)将
返回一个新的双初始化值 由指定的String表示,如由类Double的valueOf 方法执行的。
和存储是一个数组,以便编译器说incompatible types:double cannot be converted to double[]
。相反可以将每个元件一个接一个地通过指定数组索引storage[index]
存储。
答
storage
是存储内容的阵列。它的类型为double[]
。你在做什么是这句话的调用分配double
到double[]
:
storage = Double.parseDouble(numbers[x]);
你想每个元素存储在存储阵列从数字阵列的一些其他元素的解析结果内。使用以下语法来代替:
storage[x] = Double.parseDouble(numbers[x]);
答
存储是保持双精度值,同时Double.parseDouble返回一个双数组,因此应该使用
存储[X] = Double.parseDouble(数字[X] );
当你使用'storage = Double.parseDouble(numbers [x])'时,将存储想象成一个双打的书;'你忘记告诉它存储器中你想要放置什么“页面”。 ('storage [page] = Double.parseDouble(numbers [x]);')编辑:我没有看到这个评论前发布的答案。 – DeadChex 2015-04-04 05:30:08