Java - 如何检查字符串中的重复字符?

标签 java regex string function duplicates

我需要编写一个函数来检查字符串中的重复值并返回唯一字符数。如果计数大于 3,它应该返回 true。如果计数小于 3,则它应该是假的。这是我一直在尝试的(注意我是 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);   
    }
}

我觉得这还不太对...

最佳答案

你几乎在那里。您可以使用索引:i 索引 String 并使用 charAt(int) 读取特定字符,而不是使用正则表达式.

然后您需要一个数据结构来跟踪每个字符出现的次数。我建议为此使用 HashMap,映射键是您已阅读的 Character,映射值是数字的 Integer 计数发生的次数。

关于Java - 如何检查字符串中的重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931012/

相关文章:

java - 为什么 printStackTrace() 和其他方法之间的执行顺序似乎是不确定的?

java - 根据格式字符串格式化数字字符串

java - 在java正则表达式中结合白名单和黑名单

regex - 如何编写搜索模式以在findstr中包含空格?

java - 如何从字符串中提取单词?

android - Ormlite转义字符串方法?

c++ - 尝试将匹配的 char 变量打印到 cout

java - 在 Java 中将价格四舍五入到最接近的 5cent 倍数

java - 短信发不出去

json - 提取 JSON 数组的正则表达式