簡體   English   中英

使用lambdas將字符串arraylist轉換為double arraylist

[英]conversion of string arraylist to double arraylist using lambdas

我需要一些有關使用java lambdas將字符串數組列表轉換為雙數組列表的幫助,直到現在為止我都嘗試過這些。

List<Double> Doublevalues1 = valueItemsToList.stream().mapToDouble(Double::parseDouble).boxed().collect(Collectors.toList());

這一般

 for(int j = 0; j< valueItemsToList.size();j++)
    {
         Doublevalues1.add(Double.parseDouble(valueItemsToList.get(j)));
         //Doublevalues.add(Double.valueOf(valueItemsToList.get(j)));
    }

誰能告訴我我哪里出問題了。這不是重復的答案,我嘗試了所有通過網絡的可能性,但沒有一個能給我正確的答案,如果您能幫助您,我會很高興。 這是我完整的代碼

 public class Stock {
public static void main(String[] args) {
    // TODO code application logic here
    String buff[] = new String[4988];
    int i = 0;
    File file = new File("C:\\Users\\admin\\Desktop\\data.csv");
    try{
        FileInputStream fis = new FileInputStream(file);
        BufferedReader dis = new BufferedReader(new InputStreamReader(fis));
        String s;
        while ((s = dis.readLine()) != null) {
           // System.out.println(s);
            buff[i] = s;
            i++;
          // String[] s1 = s.split(",");
        }
    }
    catch(Exception e)
    {
         System.out.println("error happend at block try at fileinput");
    }
     //converting array string to arraylist
     List<String> valueItemsToList = Arrays.asList(buff);
     //valueItemsToList.forEach(System.out::println);
     List<Double> Doublevalues1 = new ArrayList<Double>();// valueItemsToList.stream().mapToDouble(Double::parseDouble).boxed().collect(Collectors.toList());
    for(int j = 0; j< valueItemsToList.size();j++)
    {
         Doublevalues1.add(Double.parseDouble(valueItemsToList.get(j)));
         //Doublevalues.add(Double.valueOf(valueItemsToList.get(j)));
    }
     Doublevalues1.forEach(System.out::println);
}
}

錯誤:有點笨拙,這里完成

java.lang.Double.parseDouble()上sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)處sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)處的線程“ main”中的java.lang.NullPointerException異常Double.java:538)在stock.Stock.main(Stock.java:53)C:\\ Users \\ admin \\ AppData \\ Local \\ NetBeans \\ Cache \\ 8.1 \\ executor-snippets \\ run.xml:53:Java返回:1生成失敗(總時間:2秒)

同意@ bayou.io,可以使用ArrayList<String>代替buff[]

(因為如果輸入文件中的行數少於4988,則將得到NullPointerExcetion,如果行數更多,則將得到ArrayIndexOutOfBoundsException)

或將null檢查放在String到Double的轉換之前,例如

for(int j = 0; j< valueItemsToList.size();j++)
{
    if(valueItemsToList.get(j) != null){ // NULL Check
        Doublevalues1.add(Double.parseDouble(valueItemsToList.get(j)));
        //Doublevalues.add(Double.valueOf(valueItemsToList.get(j)));
    }
}
List<String> valueItemsToList = Arrays.asList(buff);
     //valueItemsToList.forEach(System.out::println);
     List<Double> Doublevalues1 = new ArrayList<Double>();// valueItemsToList.stream().mapToDouble(Double::parseDouble).boxed().collect(Collectors.toList());
    for(int j = 0; j< valueItemsToList.size();j++)
    {
         Doublevalues1.add(Double.parseDouble(valueItemsToList.get(j)));
         //Doublevalues.add(Double.valueOf(valueItemsToList.get(j)));

    }
     Doublevalues1.forEach(System.out::println);

解決了您的帖子謝謝

暫無
暫無

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

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