将Matcher的输出放入数组然后比较数组中的值

时间:2014-05-07 07:42:55

标签: java arrays matcher

我有以下代码,我想捕获double的值并将它们放入数组中。作为初学者,我试图获得变量double的所有输出并使用该行将它们放入数组...

double[] x = new double[(int) doub];

虽然这段代码编译我只是得到像[D @ 116ab4e当我打印出x时的值]。我想这是因为我将double作为int而不是它的double。但是,如果我不这样做,代码不会编译。我只是被卡住了!所以任何建议都将不胜感激!

                    String[] shadingarray = str.split(";");

                    for (String str1: shadingarray){
                        Matcher search = Pattern.compile("(?!=\\d\\.\\d\\.)([\\d.]+)").matcher(str1); 
                        while (search.find()){ 
                            double doub = Double.parseDouble(search.group(1)); 

                            double[] x = new double[(int) doub];

我还应该添加双倍等于的双打类型,它们如下所示:

3.0
6.4855612
4.0
0.6161728763
4.0
2.2012378517
4.0

任何帮助?

1 个答案:

答案 0 :(得分:0)

你可能想要重做你的循环:

List<Double> list = new ArrayList<Double>()
while ( search.find() ) { 
    list.add( Double.parseDouble(search.group(1)) )
}

如果你想把它作为一个数组,那么

double x[] = list.toArray();

此外,如果您System.out.println( x ),您将获得类似[D@116ab4e的内容,其实质上意味着“数组双精度”([D),后跟数组对象的哈希码。你可能想要

for ( i=0; i<x.length; i++ ) { System.out.println( x[ i ] ); }

干杯,