![](/img/trans.png)
[英]Converting ArrayList<ArrayList<String>> to ArrayList<ArrayList<Integer>>
[英]Converting a String ArrayList into a Double ArrayList
我正在嘗試將我的String
ArrayList
轉換為Double
ArrayList
,由於某種原因,它轉換不正確。
我的輸入:
1 2 3 4
我的輸出:
[1.0]
[1.0, 1.0, 2.0]
[1.0, 1.0, 2.0, 1.0, 2.0, 3.0]
[1.0, 1.0, 2.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 4.0]
預期產量:
[1.0] [1.0, 2.0] [1.0, 2.0, 3.0] [1.0, 2.0, 3.0, 4.0]
我的密碼
String inputValue;
List<String> input = new ArrayList<String>();
List<Double> numbers = new ArrayList<Double>();
while((inputValue = stdin.readLine()) != null) {
input.add(inputValue);
for(int i = 0; i < input.size(); i++) {
numbers.add (Double.parseDouble(input.get(i)));
}
System.out.println(numbers);
}
您不需要兩個循環-當您從stdin
讀取輸入時,可以將String
轉換為double
。 除此之外,一旦所有數字都在列表中,則輸出應在循環完成后打印:
while((inputValue = stdin.readLine()) != null){
input.add(inputValue);
numbers.add (Double.parseDouble(inputValue));
}
System.out.println(numbers);
實際上,我不確定您是否甚至需要input
列表。
編輯:
如果要在將輸入添加到列表中時對其進行打印,並處理錯誤的輸入,並允許用戶通過鍵入enter(即空行)退出循環:
while((inputValue = stdin.readLine()) != null && !inputValue.isEmpty()) {
input.add(inputValue);
try {
numbers.add (Double.parseDouble(inputValue));
System.out.println(numbers);
}
catch (NumberFormatException numEx) {
System.out.println(inputValue + " is not a double");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.