1.使用字符串
解题思路:
- 定义一个去重的方法,接收一个字符串
- 定义一个字符串,用来接收拆分后的子串
- for循环遍历,将字符串s中的子串赋值给字符串str,判断str在在result数组中是否出现过,如果没有出现过将str拼接到result字符串上
- 最后返回result
public String clearRepeat(String s){
String result = "";
for (int i = 0; i <s.length(); i++) {
String str = s.charAt(i)+"";
if (result.indexOf(str) == -1){
result = result + str;
}
}
return result;
}
2.使用List集合
解题思路:
- 定义一个去重的方法,接收一个字符串
- 创建List
- 循环遍历字符串s,如果在集合中没有包含s的子串,则将子串添加到集合当中
- 打印
- 返回集合
public List clearChong(String s){
List list = new ArrayList();
for (int i = 0; i <s.length(); i++) {
if (!list.contains(s.charAt(i))){
list.add(s.charAt(i));
}
}
System.out.println(list);
return list;
}
3.使用Set集合
解题思路:
- 创建一个去重的方法,接收一个字符串s
- 创建set集合
- 循环遍历字符串s,将s的子串添加到set集合中(set集合可以自动去重,所以不需要额外判断)
- 打印
- 返回set
public Set clearRe(String s){
Set set = new HashSet();
for (int i = 0; i <s.length(); i++) {
set.add(s.charAt(i));
}
System.out.println(set);
return set;
}
4.利用HashMap
解题思路:
- 定义一个去重的方法,接收一个字符串
- 创建map
- 循环遍历字符串s,将s的子串赋值到str中,作为map的key值,value值可以随便设置
- 利用keySet()方法,将map中的key值写成set集合
- 打印
public void clearMap(String s){
HashMap map = new HashMap();
for (int i = 0; i <s.length(); i++) {
String str = s.charAt(i)+"";
map.put(str,"1111");
}
Set set = new HashSet();
set = map.keySet();
System.out.println(set);
}
5.利用数组
解题思路:
- 创建去重方法,接收字符串
- 创建字符串数组
- 循环遍历,将s的子串赋值给字符串str
- 判断子串在字符串中的下标是否和i值相同,相同的话给数组进行扩容,同时,再利用循环遍历将子串赋值到数组当中
- 打印
public void clearArr(String s){
String[] arr = new String[0];
for (int i = 0; i < s.length(); i++) {
String str=s.charAt(i)+"";
if(s.indexOf(str) == i) {
String[] temp_arr = Arrays.copyOf(arr,arr.length+1);
for(int j=0;j < temp_arr.length;j++){
temp_arr[j]=str;
System.out.print(temp_arr[j]);
}
}
}
}