[英]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::toString
或String::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.