我一直在尝试解决此任务可能已经超过一个小时了。 我需要从字符串中删除所有重复项,但棘手的部分是,如果一个字母重复并且奇数次,该字母的一个副本应该保留在最后一个字符串中。例如,一串assdafff
应该转换为df
,因为f呈现奇数次。我设法制作一个程序来删除所有重复的内容,但我无法找到那些在那里出现奇数次的内容。 重要的是保持输入字符串中遇到的元素的顺序与输入中相同。查找并删除所有重复的字符串,除非它们重复奇数次
public static void main(String[] args){
Scanner reader = new Scanner(System.in);
String x = reader.nextLine();
String ne = "";
StringBuffer buf = new StringBuffer(x.length() -1);
for(int i=0; i<x.length(); i++){
for(int v = 0; v<x.length(); v++){
if((x.charAt(i)==x.charAt(v))&&(i!=v)){
break;
}
if((v==x.length()-1)&&(i!=v)){
ne+=x.charAt(i);
}}
}
if(ne.equals("")){
System.out.println("Empty String");
}else{
System.out.println(ne);
}
}
您可以使用'LinkedHashMap'来保持插入顺序 –
@FedericoPeraltaSchaffner哦,是的,你说得对,谢谢指出。 –
@FedericoPeraltaSchaffner我编辑我的答案来说明你的建议,如果你不介意^^ –