在Java中,如何将字符串转换为double(而不是Double)?

时间:2016-04-06 06:09:50

标签: java string double

它是学校实验室的一部分,我已经研究过,但我无法找到完成这项任务的任何事情。我正在使用FileReader和BufferedReader从文件中读取行。文件中的数据是名称和年龄,格式如下:

John doe 20

Jane doe 30

等。我已经有了代码,它将采用每一行并进行拆分: split [0] = {" John"," doe"," 20"}

我需要得到" 20"并存储在double [0] = 20;

等双精度数组中

它必须是double而不是Double的原因是因为作业中的部分代码已经写好了,我确信我不能只决定更改所有内容并使用Double代替。我怎样才能做到这一点?提前谢谢!

2 个答案:

答案 0 :(得分:6)

使用Double#parseDouble

如您所见,静态方法返回原始double而不是对象Double

public static double parseDouble(String s)
public static void main(String[] args) {
    String strNumber = "20";
    double myParsedDouble = Double.parseDouble(strNumber);

    System.out.println(myParsedDouble);
}

答案 1 :(得分:0)

您希望将其置于for循环中并开始迭代...我只是使用List来操纵数据,因为我们不知道有多少匹配有(因此,我们不能建立一个数组)。

String[] startingArray; // Whatever you put in here
List<Double> endingList = new ArrayList<Double>();
for (String element : startingArray) {
    try {
        endingList.add(Double.parseDouble(element));
    } catch (NumberFormatException e) {
        // do nothing if it doesn't parse
        // note that catching exceptions do not have an adverse effect on performance
    }
}

// Either, if you want it in a Double[]... or
Double[] endingArray = endingList.toArray(new Double[endingList.size()]);

// If you want a double[], start iterating...
double[] endingArray = new double[endingList.size()];
for (int i = 0; i < endingList.size(); i++) {
    endingArray[0] = endingList.get(0);
}