当前位置: 首页 > 知识库问答 >
问题:

使用lambdas将string arraylist转换为double arraylist

闽鸿宝
2023-03-14
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);
}
}

错误:它有点笨拙,它在这里是完整的

共有1个答案

秦俊豪
2023-03-14

同意@bayou.io,可以使用arraylist 代替buff[]

(因为如果输入文件中的行数少于4988,那么您将得到NullPointerExcetion,如果有更多的行,那么您将得到ArrayIndexOutOfBoundsException)

或者在字符串前放置null检查以进行双重转换,例如。

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)));
    }
}
 类似资料:
  • 我想将列表转换为映射,如下所示。下面是一个例子。 我有学生列表类似下面的代码片段。从其中得到一个Hasmap,其中Key为Integer(也就是年龄),value为list。 映射[[10,{1}],[20,{2,3,4}],[30,{5}].[40,{6}]]; 提前致谢.......!

  • XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输

  • 我正在使用两个for循环将下面的对象结构列表转换为一个HashMap,如下所示。 我如何使用lambdas/streams做同样的事情呢?我试过用平面地图,但没用。流式传输时无法访问嵌套得注册区域. 基于@Nidhish Krishnan答案更新工作代码示例

  • 在我的Oracle数据库中,我有存储为VARCHAR的数量值。从数据库中检索记录时,我希望将它们映射到一个POJO,其中金额值表示为double。不幸的是,我不能使用强制类型,因为在数据库中,所有内容都存储为VARCHAR,并且没有模式将列标识为包含金额值的列。 我正在查看jOOQ转换器,这似乎是我想要的。因此,我为此创建了一个jOOQ转换器: 然而,每当我想使用将数据库记录映射到我的POJO时,

  • 问题内容: 我们正在构建一个与其他系统部分交互的应用程序。我们正在从另一个系统中提取一些数据,这些数据作为RTF文档返回。但是我们必须防止用户编辑此文件,因此我们考虑将其与iText转换为PDF。程式码片段: 创建了Pdf,但是字体大小错误,样式错误并且编码错误。也许您有类似的问题,并且您已经解决了一些问题?也许有更好的解决方案? 问题答案: 根据这篇文章, itext正在放弃RTF 。我使用的一

  • 问题内容: 如何使用Python将PDF文件转换为HTML? 我只是在想Google会(或似乎会)对PDF文件建立索引的行为。 我的最终目标是设置Apache以显示PDF文件的HTML,因此,向该方向发展的任何事情也将不胜感激。 问题答案: 该poppler的包提供了一个实用PDF2HTML您可能能够使用。还有一个Python绑定到libpoppler。