[英]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.