如何在 Java 的 ArrayList 中使用模式以特定方式处理数据?
How can I use patterns to process data in a specific way in ArrayList in Java?
我的数组列表中有几个字符串,其中一些以 特定前缀 开头 - 例如 ("AFI")。我想从数组列表中 删除 这些字符串。其他字符串包含 两个以上的词 ,例如 ("Edit this template")。我也想删除它们,以及只包含一个单词.
的字符串
我知道我应该使用模式,但找不到我应该使用的确切内容。如果你能帮我解决这个问题,我会很高兴。
您可以将 List#removeIf 与符合您的规则的谓词一起使用。假设你有这样的事情:
List<String> myList = new ArrayList<>();
myList.add("AFIxyz boo");
myList.add("Foo Bar");
myList.add("Bar Baz");
myList.add("AFI afi");
myList.add("Edit this template");
myList.add("Watch");
System.out.println("Before removing:");
System.out.println(myList);
//remove all which start with "AFI"
myList.removeIf(s -> s.startsWith("AFI"));
//remove all which have more than two words
myList.removeIf(s -> s.split(" ").length > 2);
System.out.println("\nAfter removing:");
System.out.println(myList);
我的数组列表中有几个字符串,其中一些以 特定前缀 开头 - 例如 ("AFI")。我想从数组列表中 删除 这些字符串。其他字符串包含 两个以上的词 ,例如 ("Edit this template")。我也想删除它们,以及只包含一个单词.
的字符串我知道我应该使用模式,但找不到我应该使用的确切内容。如果你能帮我解决这个问题,我会很高兴。
您可以将 List#removeIf 与符合您的规则的谓词一起使用。假设你有这样的事情:
List<String> myList = new ArrayList<>();
myList.add("AFIxyz boo");
myList.add("Foo Bar");
myList.add("Bar Baz");
myList.add("AFI afi");
myList.add("Edit this template");
myList.add("Watch");
System.out.println("Before removing:");
System.out.println(myList);
//remove all which start with "AFI"
myList.removeIf(s -> s.startsWith("AFI"));
//remove all which have more than two words
myList.removeIf(s -> s.split(" ").length > 2);
System.out.println("\nAfter removing:");
System.out.println(myList);