簡體   English   中英

將字符串ArrayList轉換為Double ArrayList

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

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