将字符串数组转换为double数组

时间:2016-03-08 04:09:32

标签: java arrays

我知道这个问题在这里有很多问题,但是我做了所有这些解决方案但它仍然不起作用。由于某种原因,它只存储第一个输入

我的输入:

1
2
3
4

预期产出:

[1.0,2.0,3.0,4.0]

实际输出:

[1.0]

代码

inputValue = stdin.readLine (); //Reads input
    String [] input = inputValue.split ("\\R"); 
    double [] numbers = new double[input.length];
        for(int i = 0; i < input.length; i++){
            numbers[i] = Double.parseDouble(input[i]);}

3 个答案:

答案 0 :(得分:1)

输入文件包含4行。

readline()只读取一行

您只能阅读并处理一行。这会将所有输入处理为ArrayList,如果您确实需要,可以稍后将其转换为数组。

List<Double> numbers = new ArrayList<>();
while( (inputValue = stdin.readLine()) != null) {
    numbers.add(Double.valueOf(inputValue);
}

答案 1 :(得分:0)

readLine()将读取,而不是整个输入。

试试这个:

import java.io.*;
import java.util.ArrayList;

class Sample {
    public static void main(String[] args) throws IOException {
        String inputValue;
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

        // read the input
        ArrayList<String> inputList = new ArrayList<String>(); // Requires JRE >= 1.5
        while((inputValue = stdin.readLine ()) != null) //Reads input
            inputList.add(inputValue);

        // convert what is read to double
        double [] numbers = new double[inputList.size()];
        for(int i = 0; i < numbers.length; i++){
            numbers[i] = Double.parseDouble(inputList.get(i));
        }

        // print what is read
        System.out.print("[");
        for(int i =0; i < numbers.length; i++){
            if (i > 0) System.out.print(",");
            System.out.print(numbers[i]);   
        }
        System.out.println("]");
    }
}

答案 2 :(得分:0)

这是 Java 8 智能代码。

String [] input = ... 
double [] numbers= Arrays.stream(input).mapToDouble(Double::valueOf).toArray();