思路就是将字符创分割成一个一个字符,然后对字符进行循环查找。
// 双重循环的方式实现
public static String findStrFor() {
String data = "abcdefghijkb";
String[] szData = data.split("");
for (int i = 0; i < szData.length; i++) {
int num = 0;
for (int j = 0; j < szData.length; j++) {
//比较是否相等
if (szData[i].equals(szData[j])) {
num++;
}
if (num > 1) {
return szData[i];
}
}
}
return null;
}
// 流的方式实现
public static String findStrStream() {
String data = "abcdefghijkb";
List<String> strList = Arrays.asList(data.split(""));
Map<String, List<String>> strMap = strList.stream().collect(Collectors.groupingBy(e -> e));
String findStr = "";
Iterator<String> iterator = strList.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
if (strMap.get(next).size() > 1) {
findStr = next;
}
}
return findStr;
}

本文介绍两种查找字符串中重复字符的方法:一种是通过双重循环对比字符,另一种是利用流操作进行字符频率统计。前者直接比较每个字符与其他所有字符,后者则使用stream API按频率分组并筛选重复项。

被折叠的 条评论
为什么被折叠?



