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

时间:2015-04-08 01:38:51

标签: java arrays string double

我正在尝试将字符串数组转换为双精度数组。 我对ArrayList<>()非常熟悉,但我看到有一个示例代码,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编译器中出错:“找不到符号方法添加(双精度)。

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

谢谢!

5 个答案:

答案 0 :(得分:2)

如果list是数组,则list.size()将失败。我想我们可以假设它应该是List<String>。并且您通过索引访问数组。另外,我认为它应该是你的方法的一个参数。接下来,方法名称的Java约定是camelCase。

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;
}

答案 1 :(得分:1)

通常,如果您正在使用集合,那么您将全程使用集合。将Lists用于一件事情是不好的形式,但是为另一件事使用数组。因此建议使用List<Double>而不是double[]

来做到这一点
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;
}

答案 2 :(得分:0)

错误发生是因为数组没有添加&#39;方法。你会想做类似的事情:

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

如果我认为list是实际的List而不是String[],那么您可以这样做:

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

答案 3 :(得分:0)

以下代码适用于您的情况:

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;
}

答案 4 :(得分:-2)

在此处更改您的代码

for(String element:list){
    double val = Double.parseDouble(element);
    sequence.add(val)
}
如果您的listList

,请

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

如果您的listArray,请更改为:

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