我需要編寫一個函數來檢查字符串是否有重複值並返回唯一字符的計數。如果計數大於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