思路为:
将string转换成字符数组,遍历该数组,若不在list中则将其放入list,若存在则continue;
有个小小的难点就是大小写也算重复(a与A重复),用到字母的ascii码知识,a与A相差32,即char a = (char)(A+32);可以查看字母的ASCII码表,所以才会出现以下的if判断。巧用基础知识,会有意想不到的收获,共勉。
public static String filter(String str) {
char[] arr = str.toCharArray();
List<Character> list = new ArrayList<Character>();
for(char chara : arr){
if(list.contains(chara) || list.contains((char)(chara+32)) || list.contains((char)(chara-32)))
continue;
list.add(chara);
}
String result = "";
for(char i :list){
result += String.valueOf(i);
}
return result;
}