希望有人可以幫助我。我有一個Invoice
類的ArrayList
。我試圖得到的是過濾這個ArrayList
,並找到其中一個屬性匹配regex
的第一個元素。 的Invoice
類看起來是這樣的:與正則表達式不工作的Java流過濾器
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+)
爲了篩選發現,如果在有不是整數的格式orderNum
屬性的任何值。 所以基本上我使用這個流
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());
隨着Integer
List
,String
等,但我還沒有找到如何與POJO
做到這一點。 任何幫助將不勝感激。 美好的一天
java8流沒有'matches'方法,是該代碼有效? – ByeBye