gpt4 book ai didi

java - java中查找字符串中的重复项

转载 作者:行者123 更新时间:2023-12-01 11:54:52 25 4
gpt4 key购买 nike

我正在解决一个问题,我需要找到给定字符串中的重复项。我能够做到这一点,但我无法输出相对于输入字符串的一系列字母表。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;


public class SandroBook {
public static void main(String[] args) {
String x = "";
String y = "";
StringBuffer sb = new StringBuffer();
Map<Character, Integer> map = new HashMap<Character, Integer>();
Scanner in = new Scanner(System.in);
System.out.println("Enter the String: ");
x=in.next();
if (x.length()>=1 && x.length()<=50 && x.equals(x.toLowerCase())) {
y=x;
}
char[] c = y.toCharArray();
for(Character ch:c){
if(map.containsKey(ch)){
map.put(ch, map.get(ch)+1);
} else {
map.put(ch, 1);
}
}
Set<Character> keys = map.keySet();
for(Character ch:keys){
if(map.get(ch) > 1){
sb.append(ch);
}
}
System.out.println(sb.toString());
in.close();
}

}

预期输出:

String by user: tebidohtebidoh
output: tebidoh

输出我得到:

String by user: tebidohtebidoh
output: detbohi

请帮助我如何以与输入相同的格式输出它。

最佳答案

使用 LinkedHashMap 代替 hashmap。因此,请在此处更改您的线路:

Map<Character, Integer> map = new HashMap<Character, Integer>(); 

Map<Character, Integer> map = new LinkedHashMap<Character, Integer>(); 

HashMap 将在 hashCode 上应用哈希函数,并将数据存储在随机存储桶中,因此在迭代 hashMap 时,您将无法获得将元素插入到映射中的方式。在 LinkedHashMap 中,您将以在映射中插入元素的方式迭代映射。

关于java - java中查找字符串中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com