2009-09-13 57 views
0

我有一个字符串,每次都会有所不同,但遵循 -3.33,-46.53,37.39,26.55,97.11,68.46,-32.46,-5.89, - 62.89,-7.9, 我想删除每个数字并将其作为double存储在数组中。 即使伪代码将是伟大的我画空白。 干杯Java:从字符串中删除双精度数并存储在数组中

+0

干杯人,只是想知道我会过得更好使用一个ArrayList,因为我从一个文件,不要读书不知道每个文件会有多大 – Nick 2009-09-13 16:36:08

+0

您应该尝试将这个问题作为一个单独的问题提供一些更多细节,但是如果您有像这样的未知数量的行,那么这就是Array列表的设计目的。如果它全部在一行上,立即读入内存,那么预先分配的数组是有道理的。 – Yishai 2009-09-13 17:42:46

+0

谢谢大家,仍然有麻烦,但我会问一个单独的帖子来澄清事情。再次欢呼。 – Nick 2009-09-13 18:20:00

回答

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

然后迭代双打阵列上方和做Double.parseDouble();

0

也许是这样的:

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

替代方式,从文件中读取输入和你读解析项目。

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

如果你愿意,你可以将它们存储就像一个数组中:

Double data[] = null; 
    getData("input.dat").toArray(data); 
相关问题