//字符串去重
//思路:创建一个新数组,遍历子符数组,放入新数组,每次检查是否重复,重复不放,不重复放入
public String quChong(String s){
char[] chars = s.toCharArray();
char[] newChars = new char[chars.length];
for (int i = 0,j = 0; i < chars.length; i++) {
if(i != 0){
if (!(String.valueOf(newChars).contains(String.valueOf(chars[i])))) {
newChars[++j] = chars[i];
}
continue;
}
newChars[i] = chars[i];
}
return new String(newChars).trim();
}
//去重思路2:利用streamAPI
public String quChong2(String s){
//将String转换为List<String>
String[] strs = s.split("");
List<String> strList = Arrays.asList(strs).stream().distinct().collect(Collectors.toList());//去重
String[] strs2 = new String[strList.size()];
//List<String>转换为String[]
strList.toArray(strs2);
//StringBuilder builder = new StringBuilder();
//for (String s1 : strList) {
// builder.append(s1);
//}
//return new String(builder);
return new String(String.join("",strs2));//String[]拼接为String
知识点:
- StringBuider的append方法:StringBuilder append(String)
- 数组转换为集合:Arrays.asList(T[] t)
- streamAPI中去重的使用:distinct()
- 字符串分割为字符串数组:String[] split(分割符),如果分割符为“”,则将字符串打散,每个字符为字符串数组中的一个元素
- 字符串去除两边空格:String trim()
- 字符串转换为字符数组:char[] toCharArray()
- 将字符数组转换为字符串:String valueOf(char[] c)
- 将字符转换为字符串:String valueOf(char c)
- 判断一个字符串是否包含另一个字符串:boolean contains(String other)
- 字符数组转换为字符串:new String(char[] c)
- 字符串拼接:String.join(String delimiter,CharSequence… elements)