赫姆斯掌握了基础知识.如果你想要字符串而不是索引,那么你可以通过使用Java 5 foreach循环来改进:
import java.util.regex.Pattern; import java.util.ListIterator; import java.util.ArrayList; /** * Finds the index of all entries in the list that matches the regex * @param list The list of strings to check * @param regex The regular expression to use * @return list containing the indexes of all matching entries */ ListgetMatchingStrings(List list, String regex) { ArrayList matches = new ArrayList (); Pattern p = Pattern.compile(regex); for (String s:list) { if (p.matcher(s).matches()) { matches.add(s); } } return matches }
Herms.. 8
有内置方法吗?从来没听说过.但是,它应该很容易自己做.这里有一些完全未经测试的代码,可以为您提供基本的想法:
import java.util.regex.Pattern; import java.util.ListIterator; import java.util.ArrayList; /** * Finds the index of all entries in the list that matches the regex * @param list The list of strings to check * @param regex The regular expression to use * @return list containing the indexes of all matching entries */ ListgetMatchingIndexes(List list, String regex) { ListIterator li = list.listIterator(); List indexes = new ArrayList (); while(li.hasNext()) { int i = li.nextIndex(); String next = li.next(); if(Pattern.matches(regex, next)) { indexes.add(i); } } return indexes; }
我可能会使用Pattern和ListIterator部分有点不对(我从未使用过),但这应该给出基本的想法.您还可以在迭代器上执行简单的for循环而不是while循环.
赫姆斯掌握了基础知识.如果你想要字符串而不是索引,那么你可以通过使用Java 5 foreach循环来改进:
import java.util.regex.Pattern; import java.util.ListIterator; import java.util.ArrayList; /** * Finds the index of all entries in the list that matches the regex * @param list The list of strings to check * @param regex The regular expression to use * @return list containing the indexes of all matching entries */ ListgetMatchingStrings(List list, String regex) { ArrayList matches = new ArrayList (); Pattern p = Pattern.compile(regex); for (String s:list) { if (p.matcher(s).matches()) { matches.add(s); } } return matches }
有内置方法吗?从来没听说过.但是,它应该很容易自己做.这里有一些完全未经测试的代码,可以为您提供基本的想法:
import java.util.regex.Pattern; import java.util.ListIterator; import java.util.ArrayList; /** * Finds the index of all entries in the list that matches the regex * @param list The list of strings to check * @param regex The regular expression to use * @return list containing the indexes of all matching entries */ ListgetMatchingIndexes(List list, String regex) { ListIterator li = list.listIterator(); List indexes = new ArrayList (); while(li.hasNext()) { int i = li.nextIndex(); String next = li.next(); if(Pattern.matches(regex, next)) { indexes.add(i); } } return indexes; }
我可能会使用Pattern和ListIterator部分有点不对(我从未使用过),但这应该给出基本的想法.您还可以在迭代器上执行简单的for循环而不是while循环.