Android Lambda 不包含无法正常工作

隐形RT

不知道为什么我没有从以下 Android 代码中得到我正在寻找的结果:

只有当 pckName包含字符串列表中列出的值之一时,我才想进入 IF 。

List<String> listOfNonApps = Arrays.asList(".google.", "com.android.", "lenovo", ".bing.",".amazon.",".microsoft.",".projectpapyrus.","com.lenovotab");

if(!listOfNonApps.contains(pckName)){
      System.out.println("Nott Found");

我什至尝试过 Lambda:

if (!listOfNonApps.stream().noneMatch(el -> el.toLowerCase().contains(pckName)) {...  
if (listOfNonApps.stream().noneMatch(el -> el.toLowerCase().contains(pckName)) {...  
if (listOfNonApps.stream().noneMatch(el -> !el.toLowerCase().contains(pckName)) {...  
if (!listOfNonApps.stream().anyMatch(str -> str.contains(pckName))) {...
if (listOfNonApps.stream().anyMatch(str -> !str.contains(pckName))) {...

pckName的格式如下:

com.google.android.apps.photos
com.google.android.deskclock
com.lenovotab.camera
com.dolby.daxappui2
com.android.settings
etc....

我认为这应该很简单,但它不起作用。它要么进入 IF 并列出所有内容,要么跳过所有内容并且从不进入 IF 语句。我正确使用它吗?

瓦西里·卡布诺夫

看起来您需要检查是否pckName包含任何子字符串,反之亦然。

if (listOfNonApps.stream().noneMatch(str -> pckName.contains(str))) {...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章