亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在一個流中進行拆分和過濾嗎?

我可以在一個流中進行拆分和過濾嗎?

烙印99 2022-09-14 16:58:42
我正在嘗試執行以下操作....我有以下模式下的字符串列表:John,Peter,CarlRose,Joanne,Natalie目前,我正在逐行閱讀并輸出流...喜歡這個: Files.lines(myfile).toURI()))這將返回一個流。我知道我可以將它們收集到一個列表中,但我想知道在這個流中我是否可以拆分并執行更多邏輯?我嘗試拆分每行并過濾,以防三個預期字段中的任何一個為空,這可能嗎?目前,我以“舊方式”擁有它,如下所示:List<TripleNames> validValues = new ArrayList();for(String value:values) { //values represent each line comma separated   final String[] names = line.split(",");   if (StringUtils.isNotBlank(names[0]) && StringUtils.isNotBlank(names[1]).... {    validValues.add(new TripleNames(names[0], names[1], names[2]);   } }有什么想法嗎?
查看完整描述

2 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

在收集到列表之前,您可能正在尋找ping作為:map

List<TripleNames> validValues = values.stream()
        .map(line -> line.split(","))
        .filter(names -> StringUtils.isNotBlank(names[0]) && StringUtils.isNotBlank(names[1]))
        .map(names -> new TripleNames(names[0], names[1], names[2]))
        .collect(Collectors.toList());


查看完整回答
反對 回復 2022-09-14
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

如果您想要一種簡單的方法來檢查所有拆分的項目,則可以使用:

Arrays.stream(names).allMatch(StringUtils::isNotBlank)

而不是在條件中分別檢查每個項目。

下面是完整示例:

List<String> validValues = values.stream()
    .map(line -> line.split(","))
    .filter(names -> Arrays.stream(names).allMatch(StringUtils::isNotBlank))
    .map(names -> new TripleNames(names[0], names[1], names[2]))
    .collect(Collectors.toList());

如果有幫助,您還可以使用之前來剪切所有名稱開頭和結尾處的空格。.map(String::trim).allMatch()


查看完整回答
反對 回復 2022-09-14
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號