簡體   English   中英

檢查列表是否包含來自字符串列表的 substring 而不迭代列表

[英]Check if a list contains an substring from a list of strings without iterating the list

    List list = new ArrayList();
    list.add("adminGroup");
    list.add("customerGroup");
    list.add("masterSalesGroup");
    System.out.println(list); //["adminGroup","customerGroup","masterSalesGroup"]
    list.contains("sales"); //false

expected output for list.contains("sales"); //true

我想檢查列表是否包含“銷售”。 如果任何列表元素包含“銷售”字樣,我需要 true。

list.contains("sales") 的預期 output; //真的

這不能通過List / ArrayList的標准 JDK 實現來完成。

類似地,輸入列表需要以一種或另一種方式迭代,以檢查其任何字符串條目是否包含給定的 substring,是否單獨檢查每個條目(在循環或流中),或者是否所有條目都加入更大的字符串(使用List::toStringString::join/ String::valueOf等)

假設隱式迭代不計為“迭代”,可能的解決方案之一就是檢查列表字符串表示是否包含字符串:

list.toString().toLowerCase().contains("sales") // -> true

另一種解決方案是使用String::matches (但是,在構建正則表達式模式時,搜索字符串需要用".*"包圍):

list.toString().matches("(?i).*sales.*"); // -> true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM