有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java返回子字符串的所有匹配项

我有以下字符串值

 String value = "col = at, ud = sam, col = me, od = tt, col = fg";

我只需要返回col=at col=me和col=fg

我知道我可以使用:

value.substring(0, value.indexOf(",")

返回col=at,但我不确定如何获得所有三个。谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    它可以通过流来实现:

    List<String> results = Arrays.stream(value.split(","))
    .map(String::trim)
    .filter(val-> !val.isEmpty() && val.startsWith("col ="))
    .collect(Collectors.toList())
    

    您还可以使用正则表达式:

    String value = "col = at, ud = sam, col = me, od = tt, col = fg";
    
    Pattern pattern = Pattern.compile("col\\s+=\\s+\\w++");
    
    List<String> allMatches = new ArrayList<String>();
    Matcher m = pattern.matcher(value);
    while (m.find()) {
       allMatches.add(m.group());
    }
    allMatches.forEach(System.out::print); 
    

    输出:

    col = at col = me col = fg