【发布时间】:2017-09-07 07:10:58
【问题描述】:
希望有人可以帮助我。我有一个ArrayList 的Invoice 类。我想要得到的是过滤这个ArrayList 并找到它的一个属性与regex 匹配的第一个元素。
Invoiceclass 如下所示:
public class Invoice {
private final SimpleStringProperty docNum;
private final SimpleStringProperty orderNum;
public Invoice{
this.docNum = new SimpleStringProperty();
this.orderNum = new SimpleStringProperty();
}
//getters and setters
}
我正在使用这个regex(\\D+) 进行过滤,以查找orderNumproperty 中是否有任何非整数格式的值。
所以基本上我正在使用这个流
Optional<Invoice> invoice = list
.stream()
.filter(line -> line.getOrderNum())
.matches("(\\D+)"))
.findFirst();
但它不起作用。任何想法?
我一直在寻找,我发现如何使用pattern.asPredicate() 就像this:
Pattern pattern = Pattern.compile("...");
List<String> matching = list.stream()
.filter(pattern.asPredicate())
.collect(Collectors.toList());
使用List 的Integer、String 等,但我还没有找到如何使用POJO。
任何帮助都感激不尽。
美好的一天
【问题讨论】:
-
java8 流没有
matches方法,这段代码有效吗?
标签: java regex java-8 java-stream pojo