java给定一个字符串找出重复的字符,并输出位置
时间: 2024-09-25 15:03:07 浏览: 38
在Java中,你可以使用HashMap数据结构来找出一个字符串中的重复字符及其位置。以下是简单的步骤:
1. 创建一个HashMap,键存储字符,值存储字符出现的位置(可以使用ArrayList作为值来保存字符的索引)。
2. 遍历输入的字符串,对于每个字符:
a. 如果该字符已经在HashMap中,则获取当前字符的位置列表并添加当前索引。
b. 如果不在Map中,则初始化一个新的ArrayList,只包含当前索引,并将其添加到Map中。
3. 遍历HashMap,找到值(位置列表)长度大于1的键(重复字符),然后打印出这些字符及其位置。
下面是一个示例代码片段:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "abracadabra";
findDuplicateCharacters(str);
}
public static void findDuplicateCharacters(String input) {
Map<Character, List<Integer>> charMap = new HashMap<>();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (charMap.containsKey(c)) {
charMap.get(c).add(i);
} else {
charMap.put(c, new ArrayList<>());
charMap.get(c).add(i);
}
}
for (Map.Entry<Character, List<Integer>> entry : charMap.entrySet()) {
if (entry.getValue().size() > 1) {
System.out.println("字符 '" + entry.getKey() + "' 的重复位置: " + entry.getValue());
}
}
}
}
```
阅读全文
相关推荐


















