gpt4 book ai didi

java - 正则表达式查找特定字符在字符串中是否存在奇数次

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:49 24 4
gpt4 key购买 nike

有什么方法可以用 Java 编写一个 正则表达式 来判断 String 是否包含奇数个特定字符,即 "a"?我已经完成了编写更冗长的代码,即使用以下方法:

public static boolean hasEvenNumber(String s) {
int count = 0;

Pattern p = Pattern.compile("(^a)*(a)");
Matcher m = p.matcher(s);
while (m.find())
count++;

if (count % 2 != 0)
return true;
return false;
}

例如,如果将字符串 "jsadaajaaikadjasl" 作为参数传递,则它返回 true,因为它包含 7 个 "a"。是否有更优雅的方法来实现它,只使用 regex 并像这样检查它:

Pattern p = Pattern.compile(...);
Matcher m = p.matcher(s);
if(m.matches())
return true;

?

最佳答案

只需创建一个匹配偶数的模式,如 "(?:[^a]*a[^a]*a)*" 添加另一个事件,(?: [^a]*a[^a]*a)*[^a]*a[^a]。现在,如果 matcher.matches 返回 true,则出现的次数为奇数。

关于java - 正则表达式查找特定字符在字符串中是否存在奇数次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com