Search for a regexp in a java arraylist

前端 未结 6 1762
失恋的感觉
失恋的感觉 2020-12-14 19:13
ArrayList  list = new ArrayList(); 
list.add(\"behold\");
list.add(\"bend\");
list.add(\"bet\");
list.add(\"bear\");
list.add(\"beat\");
list.add(\"bec         


        
6条回答
  •  我在风中等你
    2020-12-14 19:51

    Herms got the basics right. If you want the Strings and not the indexes then you can improve by using the Java 5 foreach loop:

    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
     */
    List getMatchingStrings(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
    }
    

提交回复
热议问题