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(结束)
步骤解析:
- 输入字符串
- 初始化一个HashSet,用于存储已经遇到的字符
- 遍历字符串的每一个字符
- 判断当前字符是否在HashSet中
- 如果当前字符在HashSet中,说明已经遇到过该字符,返回true
- 如果当前字符不在HashSet中,将该字符添加到HashSet中
- 继续遍历下一个字符
- 如果遍历完所有字符后仍未遇到重复字符,返回false
- 结束
代码实现:
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);
}
}
代码解释:
- 首先,我们定义了一个名为
CharacterDuplicateChecker
的类。 - 在该类中,我们定义了一个名为
isDuplicate
的静态方法,用于判断字符串中是否存在重复字符。 - 在方法中,我们首先初始化了一个
HashSet
对象,用于存储已经遇到的字符。 - 然后,我们使用一个
for
循环遍历字符串中的每一个字符。 - 在循环中,我们使用
set.contains(ch)
方法判断当前字符是否在HashSet
中。 - 如果在
HashSet
中,说明已经遇到过该字符,直接返回true
。 - 如果不在
HashSet
中,将该字符添加到HashSet
中。 - 最后,如果遍历完所有字符后仍未遇到重复字符,返回
false
。 - 在
main
方法中,我们调用isDuplicate
方法,并输出判断结果。
希望这个解答能够帮助到你,如果还有其他问题,请随时向我提问。