java实现:对一个字符串,取出重复的,只保留第一次出现的。比如aabcc,救输出:abc |
package 字符串; import java.util.ArrayList; import java.util.List; public class FilterSameCode { public static void main(String[] args) { String str1 = ",,,123aaabbcddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef55555"; List<Character> list1 = FilterSameCode.filterSameCode(str1); for (int k = 0; k < list1.size(); k++) { System.out.print(list1.get(k)); } } public static List<Character> filterSameCode(String str) { List<Character> list = new ArrayList<Character>(); // 这个for循环就是将字符串中数据放到集合中 for (int i = 0; i < str.length(); i++) { list.add(str.charAt(i)); } // 下边两个for循环就是用来比较后边和前面的是不是一样的, for (int j = 0; j < list.size(); j++) { for (int n = j + 1; n < list.size(); n++) { // 下边的if语句判断就是要是一样,就删除后边一个,然后将前面一个移除掉,在吧当前的下边保持不变 if (list.get(j).equals(list.get(n))) { list.remove(n); n--;// 比如移除了第n个,接下来要处理下面一个,下边的一个的下标就是n,为了抵消再次进入循环要进行的n++,这里就需要进行一个自减 } } } // char[] ch = null; // for (int m = 0; m < list.size(); m++) { // // ch[m]=list.get(m); // System.out.print(list.get(m)); // } return list; } }
上边有一点可以修改,如果需要我返回字符串的话,就需要拼接了,我上边是输出了list形式,下边是写了拼接成字符串的代码部分,下边代码转载自:https://blog.csdn.net/sheepmu/article/details/20941803
- StringBuffer sb=new StringBuffer();
- for(String s:list)
- sb.append(s);
- System.out.println(sb.toString());
控制台输出: