我需要编写一个函数来检查字符串是否有重复值并返回唯一字符的计数。如果计数大于3,它应该返回true。如果计数小于3,则应该是错误的。这是我一直想(请注意,我是新来的Java)Java - 如何检查字符串中的重复字符?
private boolean isFormatValid(String password) {
CharSequence inputStr = password;
int length = inputStr.length();
int numberDups = 0;
for(int i=0; i < length; ++i) {
Pattern pattern = Pattern.compile("(.)(?=.*?\1){1,20}");
Matcher matcher = pattern.matcher(inputStr);
numberDups += 1;
}
if (numberDups < 3) {
return false;
}
return true;
}
我试图用一个正则表达式,因为有人认为它可能会更容易。但是如果我能在没有正则表达式的情况下完成这项工作,我会更开心。
这是什么意思?
private boolean isFormatValid(String password) {
int length = inputStr.length();
int numberChars = 0;
for(int i=0; i < length; ++i) {
int index = password.indexOf(i);
CharArray[i] = charAt(i);
}
}
我觉得这是不是甚至接近是正确的...
我只是简单地循环,并使用字符串indexOf函数与你正在做的事情。如果你想使用正则表达式,你可以编写一个正则表达式,你只需要对该字符串使用一次。 – onit
该问题要求的唯一字符的数量,但代码似乎试图计数重复....我只是读这个错误? –
G_H - 谢天谢地这不是功课。我是一名初学者开发人员,尝试通过一些书籍和论坛自行学习JAVA。 – Rich