Java确定字符是否重复的实现流程

流程图:

graph TD
A(开始) --> B(输入字符串)
B --> C(初始化HashSet)
C --> D(遍历字符串)
D --> E(判断字符是否在HashSet中)
E --> F(若在HashSet中,返回true)
E --> G(若不在HashSet中,将字符添加到HashSet中)
G --> D(继续遍历下一个字符)
D --> H(遍历完所有字符后,返回false)
H --> I(结束)

步骤解析:

  1. 输入字符串
  2. 初始化一个HashSet,用于存储已经遇到的字符
  3. 遍历字符串的每一个字符
  4. 判断当前字符是否在HashSet中
  5. 如果当前字符在HashSet中,说明已经遇到过该字符,返回true
  6. 如果当前字符不在HashSet中,将该字符添加到HashSet中
  7. 继续遍历下一个字符
  8. 如果遍历完所有字符后仍未遇到重复字符,返回false
  9. 结束

代码实现:

import java.util.HashSet;

public class CharacterDuplicateChecker {
    public static boolean isDuplicate(String str) {
        HashSet<Character> set = new HashSet<>(); // 初始化HashSet
        for (int i = 0; i < str.length(); i++) { // 遍历字符串的每一个字符
            char ch = str.charAt(i);
            if (set.contains(ch)) { // 判断字符是否在HashSet中
                return true; // 若在HashSet中,返回true
            } else {
                set.add(ch); // 若不在HashSet中,将字符添加到HashSet中
            }
        }
        return false; // 遍历完所有字符后,返回false
    }

    public static void main(String[] args) {
        String str = "Hello World!";
        boolean isDuplicate = isDuplicate(str);
        System.out.println("是否存在重复字符:" + isDuplicate);
    }
}

代码解释:

  1. 首先,我们定义了一个名为CharacterDuplicateChecker的类。
  2. 在该类中,我们定义了一个名为isDuplicate的静态方法,用于判断字符串中是否存在重复字符。
  3. 在方法中,我们首先初始化了一个HashSet对象,用于存储已经遇到的字符。
  4. 然后,我们使用一个for循环遍历字符串中的每一个字符。
  5. 在循环中,我们使用set.contains(ch)方法判断当前字符是否在HashSet中。
  6. 如果在HashSet中,说明已经遇到过该字符,直接返回true
  7. 如果不在HashSet中,将该字符添加到HashSet中。
  8. 最后,如果遍历完所有字符后仍未遇到重复字符,返回false
  9. main方法中,我们调用isDuplicate方法,并输出判断结果。

希望这个解答能够帮助到你,如果还有其他问题,请随时向我提问。