簡體   English   中英

將字符串數組轉換為雙精度數組

[英]Convert a string array into a double array

我知道這里有很多問題要解決,但是我做了所有這些解決方案,但仍然無法解決。 由於某種原因,它僅存儲第一個輸入

我的輸入:

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

輸入文件包含4行。

readline()僅讀取一行

您僅閱讀和處理了一行。 這會將所有輸入處理到ArrayList ,如果確實需要,可以稍后將其轉換為數組。

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

readLine()將讀取line ,而不是整個輸入。

嘗試這個:

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("]");
    }
}

這是Java 8智能代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM