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

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

在對象中搜索關鍵字

在對象中搜索關鍵字

互換的青春 2022-05-12 16:35:12
我有一個對象列表,每個對象都有名字和姓氏。我試圖為他們的名字創建一個關鍵字搜索功能,所以我的邏輯是如果我連接他們的名字和姓氏,然后檢查兩個名字的總和是否包含關鍵字,將對象作為字符串返回。我試圖把它寫成一個 lambda 表達式,但我就是不明白。該函數每次都不返回任何內容。我對 lambdas 完全陌生,所以這個簡單的任務對我來說非常困難。當我閱讀下面的代碼時.. 我看到了:每個元素連接它們的名稱,然后通過查看字符串是否包含關鍵字進行過濾,然后將流轉換為列表對象,然后將對象轉換為字符串,然后返回字符串。感謝任何能提供幫助的人。public String generateUserByKeyword2(String keyword){ return  users.stream()         .map(x-> x.getFirstName() + x.getLastName().toLowerCase())         .filter(x -> x.contains(keyword.toLowerCase()))         .collect(Collectors.toList())         .toString();}  
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

如果您按名字搜索,它不是小寫的,正確的行應該是:

     .map(x-> (x.getFirstName() + x.getLastName()).toLowerCase())

(請注意額外的括號,或者您可以通過調用toLowerCase()兩者來實現相同的效果)

無論如何,結果將返回錯位的串聯名稱。如果要返回原始對象列表,則必須將maplambda 和filterlambda 連接在一起:

     .filter(x-> (x.getFirstName() + x.getLastName()).toLowerCase().contains(keyword.toLowerCase())
     .collect(Collectors.toList())

此外,您可以通過提前調用toLowerCase()一次來進行一些優化。


查看完整回答
反對 回復 2022-05-12
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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