Потоки Java 8 фильтруют пустую строку [] из списка ?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Потоки Java 8 фильтруют пустую строку [] из списка ?

Сообщение Anonymous »

Предполагая, что у нас есть 2 тестовые строки[], что-то вроде:
String[] test = {"","","","",""};
String[] test2 = {"Test","Name", "5.00", "NY", "Single"};

А затем добавляем их в такой список:
List testList = new ArrayList();
testList.add(test);
testList.add(test2);

Цель того, что я пытаюсь сделать, — найти сумму уплаченных долларов в индексе 2 каждого String[] с использованием потоков Java 8. Но я не могу отфильтровать строку String[], содержащую пустые значения в каждом индексе. Вот моя попытка:
public static void main(String[] args) {
String[] test = {"","","","",""};
String[] test2 = {"Test","Name", "5.00", "NY", "Single"};
List testList = new ArrayList();
testList.add(test);
testList.add(test2);
System.out.println(testList);
testList.stream().map(Arrays::asList).filter(i -> !i.isEmpty())
.mapToDouble(columnsPerRow ->
Double.parseDouble(columnsPerRow.get(2)))
.sum();
System.out.println(testList);
}

Моя попытка отфильтровать его была с использованием filter(i -> !i.isEmpty())
Ошибка, которую он выдает, по-прежнему:
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at Main.lambda$main$0(Main.java:23)
at java.util.stream.ReferencePipeline$6$1.accept(ReferencePipeline.java:244)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.DoublePipeline.collect(DoublePipeline.java:500)
at java.util.stream.DoublePipeline.sum(DoublePipeline.java:411)
at Main.main(Main.java:23)


Подробнее здесь: https://stackoverflow.com/questions/665 ... liststring
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конвертировать Map > для списка > используя API потока
    Anonymous » » в форуме JAVA
    0 Ответы
    102 Просмотры
    Последнее сообщение Anonymous
  • Фильтры по-прежнему фильтруют POST после его отключения во время игры.
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Почему мой ответ всегда представляет собой пустую пустую строку? [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • Лучший способ обработать пустую/пустую строку в DataFrame Pandas
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Назначьте ввод Map> выходу Map>
    Anonymous » » в форуме JAVA
    0 Ответы
    125 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»