如何根据特定的正则表达式过滤作为字符串的集合值?

时间:2018-03-21 06:47:08

标签: java jxls

我有一个字符串数组的集合,我使用jXLS库写入Excel文件。但我只希望将匹配正则表达式的字符串写入excel文件。

1 个答案:

答案 0 :(得分:0)

可以使用java 8 stream api和java.util.regex.Pattern完成。

例如:

    String pattern = "\\d.+";
    Pattern r = Pattern.compile(pattern);


    List<Object> words = Arrays.asList("abc",1.0d,"123","a2c","111",2.3d);

    List<String> filteredWords = words.stream()
            .filter(object->object.getClass()==String.class) //accept only strings
            .map(obj->obj.toString()) // map object to string
            .filter(word->r.matcher(word).matches())
            .collect(Collectors.toList());
    System.out.println(filteredWords); // [123, 111]