Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串向数组列表添加双值_Java_Arrays_String_Double - Fatal编程技术网

Java 从字符串向数组列表添加双值

Java 从字符串向数组列表添加双值,java,arrays,string,double,Java,Arrays,String,Double,我试图把一个字符串数组转换成一个双精度数组。 我对ArrayList()相当熟悉,但我在示例代码give中看到了double[] 示例:list=[“1”、“2”、“3”] 期望返回:数字=[1,2,3] public double[] ConversionNumber { double[] sequence = new double[list.size()]; for(String element:list){ double val = Double.parseDouble(element);

我试图把一个字符串数组转换成一个双精度数组。 我对ArrayList()相当熟悉,但我在示例代码give中看到了double[]

示例:list=[“1”、“2”、“3”] 期望返回:数字=[1,2,3]

public double[] ConversionNumber
{
double[] sequence = new double[list.size()];
for(String element:list){
double val = Double.parseDouble(element);
sequence.add(val)}

return sequence;
当我这样做时,我在Bluej编译器中得到一个错误:“找不到符号-方法add(double)”

解决这个问题的好方法是什么(我是Java初学者)


谢谢!

如果
list
是一个数组,那么
list.size()
将失败。我想我们可以假设它应该是一个
list
。您可以通过索引访问数组。此外,我还假设它应该是方法的参数。接下来,方法名称的Java约定是CAMEL CASE

public double[] conversionNumber(List<String> list) {
    double[] sequence = new double[list.size()];
    int pos = 0;
    for (String element : list) {
        double val = Double.parseDouble(element);
        sequence[pos++] = val; // <-- post-increment
    }
    return sequence;
}
public double[]转换号(列表){
double[]序列=新的double[list.size()];
int pos=0;
for(字符串元素:列表){
double val=double.parseDouble(元素);

sequence[pos++]=val;//发生错误的原因是数组没有“add”方法。您需要执行以下操作:

double[] sequence = new double[list.length]; 
for(int i = 0; i < list.length; i++){
    sequence[i] = Double.parseDouble(list[i]);
}
在这里更改您的代码

for(String element:list){
    double val = Double.parseDouble(element);
    sequence.add(val)
}

如果您的
列表
列表
,则:

for(int i=0;i<list.size();i++){
    double val = Double.parseDouble(list.get(i));
    sequence[i]=val;
}

以下代码适用于您的案例:

java.util.List<String> list = java.util.Arrays.asList("1", "2", "3");
public double[] ConversionNumber() {
    double[] sequence = new double[list.size()];
    int i = 0;
    for(String element:list){
        double val = Double.parseDouble(element);
        sequence[++i] = val;
    }
    return sequence;
}
java.util.List List=java.util.Arrays.asList(“1”、“2”、“3”);
公共双[]转换号(){
double[]序列=新的double[list.size()];
int i=0;
for(字符串元素:列表){
double val=double.parseDouble(元素);
序列[++i]=val;
}
返回序列;
}

一般来说,如果你在处理集合,你会一直处理集合。一方面使用列表,另一方面使用数组是不好的。因此建议使用
列表来完成这项工作,而不是使用
双[]

public List<Double> parseDoubles(List<String> strings) {
    List<Double> doubles = new ArrayList<>(strings.size());
    for(String string : strings) {
        doubles.add(new Double(string));
    }
    return doubles;
}
public List parsedouble(列表字符串){
List doubles=newarraylist(strings.size());
for(字符串:字符串){
添加(新的双精度(字符串));
}
双打;
}

问题是他调用的是数组上的
add
,而不是基于错误的
list.size()
调用。我假设因为他想要一个
double[]
list
可能是一个
字符串[]
而不是
list
数组没有
size()
方法,它们也没有
get())
method@Epicblood拜托,
list
是一个
list
,你没有在他的代码中看到
list.size()
?我的回答绝对正确“我正在试图隐藏字符串数组。”“查看代码时,它可能是一个
列表
,但是,由于他希望结果也在一个数组中,因此可以安全地假设
列表
是一个数组。他尝试在数组上调用
add()
,因此
size()
get()
可能也有错误。您的
列表是一个
列表,而不是一个
数组,对吗?我使用:ArrayList list=new ArrayList()
new double[list.length-1]
创建了列表,double[]的大小不在这里。@SilentKnight my bad,更改了它。
java.util.List<String> list = java.util.Arrays.asList("1", "2", "3");
public double[] ConversionNumber() {
    double[] sequence = new double[list.size()];
    int i = 0;
    for(String element:list){
        double val = Double.parseDouble(element);
        sequence[++i] = val;
    }
    return sequence;
}
public List<Double> parseDoubles(List<String> strings) {
    List<Double> doubles = new ArrayList<>(strings.size());
    for(String string : strings) {
        doubles.add(new Double(string));
    }
    return doubles;
}