繁体   English   中英

如何通过检查长度并比较Java中的文本来从数组中删除String?

[英]How to remove String from an array by checking length and comparing text in Java?

如何通过检查长度并比较Java中的文本来从数组中删除String?

假设用户搜索“ Hi Tonki with Monkey”

String[] pattern = userSearchString.toLowerCase().split("\\s");

1)我们要从模式和

2)还希望删除尺寸小于3的图案,例如“ Hi”。

因此模式应仅包含Tonki和Monkey。

如果有人可以从Apache Commons或Guava建议方法,那将是很幸运的。

使用Java 1.6

Java 8解决方案是Stream处理数组并仅过滤所需的元素,然后将其收集回数组中:

Arrays.stream(pattern)
      .filter(word -> !word.equals("with"))
      .filter(word -> word.length() >= 3)
      .toArray(String[]::new);

Java 8之前的解决方案是手动过滤数组。 但是,我们必须创建一个新的数组。 但是由于我们不预先知道新数组的大小,因此可以使用List<String>并在添加其各自的元素后将其收集到数组中:

List<String> list = new ArrayList<>();

for (String word : pattern) {
    if (word.length() < 3 || word.equals("with")) {
        continue;
    }

    list.add(word);
}

list.toArray(new String[list.size()]);

如果不需要外部库,则无需使用它们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM