如果String包含特定字母的确切次数

red*_*ela -2 java string

在Java中,有没有办法说...例如"这个词是否包含Z三次?"

我猜可能会有一些聪明的char值?

String word = "pizzaz"

// Check if word contains three z's
boolean b = word.contains("SOME CLEVER CHAR VALUE??"); 
Run Code Online (Sandbox Code Playgroud)

如果可能的话,可以在通过"时间量"时使用整数值,即

int letterAmount = 3;

Hel*_*tos 6

你可以使用正则表达式来做到这一点.按照你的例子:

word.matches(".*(z.*){3}.*")
Run Code Online (Sandbox Code Playgroud)

如果你的字符串有3个z,它返回true.


das*_*ght 5

计算单字符匹配的一种有点昂贵和迂回的方法如下:

String s = "pizzaz";
int numMatches = s.length() - s.replaceAll("z", "").length();
Run Code Online (Sandbox Code Playgroud)

"z"从原始字符串的长度中减去删除了所有s 的字符串的长度时,最终z得到原始字符串中的s 数.