java 使用正则表达式计算字符串中的字母数[已关闭]

bpsygsoo  于 2023-02-11  发布在  Java
关注(0)|答案(2)|浏览(144)

14小时前关门了。
Improve this question
我有一个字符串abcdabcd,我想计算a和b的出现次数之和,并检查这个和是否为偶数,同样的,我想计算b和d的出现次数之和,并检查它们是否也为偶数,使用一个正则表达式检查这些条件。

    • 例如:**
abcdabcd

a + b = 2+ 2 = 4 = even
c+d = 2+2 = 4 = even

So true
    • 另一个示例:**
abcda
a+b = 3 = not even

So false.

如何创建一个正则表达式来同时满足这两个条件。
我可以用一个for循环来计算字符数,然后解出这个逻辑。

    • 但我想知道如何为此构建正则表达式。**
vzgqcmou

vzgqcmou1#

虽然这个问题还不清楚,但这是我对解决办法的看法

String input = "abcdabcd";
Pattern pattern = Pattern.compile("([a-b]+)([c-d]+)");
long matchingPair = pattern.matcher(input).results().count();
System.out.println(matchingPair); //here it will be 2

matchingPair将提供匹配计数;对于第二个输入"abcda",matchingPair将为1
希望能有所帮助!

1l5u6lss

1l5u6lss2#

这不是一个很清楚问题,但我想您可以使用类似这样的问题:

public static void main(String[] args) {
    Pattern abMatcher = Pattern.compile("[ab]");
    Pattern cdMatcher = Pattern.compile("[cd]");

    String text1 = "abcdabcd";
    String text2 = "abcda";

    long abCount1 = abMatcher.matcher(text1).results().count();
    long cdCount1 = cdMatcher.matcher(text1).results().count();

    long abCount2 = abMatcher.matcher(text2).results().count();
    long cdCount2 = cdMatcher.matcher(text2).results().count();

    System.out.println(abCount1 + " " + cdCount1);
    System.out.println(abCount2 + " " + cdCount2);
}

相关问题