【发布时间】:2016-02-09 14:52:32
【问题描述】:
到目前为止,我需要一些关于使用 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);
}
}
错误: 它有点笨拙,这里完整
线程“main”中的异常 java.lang.NullPointerException 在 sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838) 在 sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) 在 java.lang.Double.parseDouble(Double.java:538) 在 stock.Stock.main(Stock.java:53) C:\Users\admin\AppData\Local\NetBeans\Cache\8.1\executor-sn-ps\run.xml:53:Java 返回:1 构建失败(总时间:2 秒)
【问题讨论】:
-
“谁能告诉我我哪里出错了”——好吧,你还没有告诉我发生了什么,这很难帮助你。请发帖minimal reproducible example。
-
当我使用整数而不是双精度时它运行良好,唯一的问题是双精度和文件只包含一列数据。
-
buff包含空值,除非行数刚好合适。不用数组,只用ArrayList<String>存储s
标签: java string arraylist lambda double