简体   繁体   English

Java:从字符串中删除双精度并存储在数组中

[英]Java: Remove double from string and store in array

I have a string that will be different each time but follow the form of -3.33,-46.53,37.39,26.55,97.11,68.46,-32.46,-5.89,-62.89,-7.9, and i want to remove each number and store as an double in an array.我有一个每次都会不同的字符串,但遵循 -3.33,-46.53,37.39,26.55,97.11,68.46,-32.46,-5.89,-62.89,-7.9 的形式,我想删除每个数字并存储作为数组中的双精度数。 even pseudocode would be great i'm drawing a blank.即使是伪代码也会很棒,我正在画一个空白。 Cheers干杯

 String[] doubles = myString.split(",");

然后遍历 doubles 数组并执行 Double.parseDouble();

Alternative way, reads input from file and parses items as thy are read.另一种方式,从文件中读取输入并在读取时解析项目。

static java.util.ArrayList<Double> getData(String filename) throws FileNotFoundException {
    java.util.ArrayList<Double> result = new java.util.ArrayList<Double>();
    java.util.Scanner sc = new java.util.Scanner(new java.io.File(filename));

    sc.useDelimiter(",");
    while (sc.hasNext())
        result.add(Double.parseDouble(sc.next()));
    sc.close();

    return result;
}

If you want, you can just store them in a array like:如果需要,您可以将它们存储在一个数组中,例如:

    Double data[] = null;
    getData("input.dat").toArray(data);

Maybe something like:也许是这样的:

String[] sa = yourString.split(",");
Double[] da = new Double[sa.length];
int idx = o;
for(String s : sa) {
   da[idx++] = Double.parseDouble(s); 
}

Split the string based on the ',' and store into a string array.根据 ',' 拆分字符串并存储到字符串数组中。

String[] arr= Str.split(",");

Then make a double array and put the each str values into that double array.然后创建一个双数组并将每个 str 值放入该双数组中。

Double[] res= new Double[arr.length];
for(int i=0;i<arr.length;i++){
    res[i] = Double.parseDouble(arr[i]); 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM