输入一个字符串,找出其重复的字符,并把该字符和索引输出java
时间: 2024-09-25 22:03:29 浏览: 30
在Java中,你可以使用HashMap或者HashSet来找出字符串中重复的字符及其索引。以下是使用HashMap的一个简单示例:
```java
import java.util.HashMap;
import java.util.Map;
public class FindDuplicateChars {
public static void main(String[] args) {
String str = "abracadabra"; // 测试字符串
Map<Character, Integer> charMap = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (charMap.containsKey(c)) {
System.out.println("字符 '" + c + "' 在位置 " + i + " 和 " + charMap.get(c) + " 出现");
} else {
charMap.put(c, i); // 如果字符第一次出现,添加到map并记录索引
}
}
// 这里处理可能出现的特殊情况,如果只有重复字符而没有其他字符,遍历一次map即可
for (Map.Entry<Character, Integer> entry : charMap.entrySet()) {
if (entry.getValue().equals(charMap.values().toArray()[0])) {
System.out.println("字符 '" + entry.getKey() + "' 只出现了一次,但是作为重复字符被记录");
}
}
}
}
```
这个程序会输出重复字符及其首次出现的位置。如果有多个相同的字符并且它们都出现在同一位置,那么只输出第一个找到的那个。
阅读全文