去除字符串中相同的字符,如有“aa”保留一个
今天看到的面试题,想了一下,贴出来
1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class DeleteSameCharacter { 5 6 /** 7 * 去除字符串中相同的字符,保留一次 8 * 9 * **/ 10 public static void main(String[] args) { 11 String s = "abcabcdef"; 12 char[] chs = s.toCharArray(); 13 List list = new ArrayList(); 14 for (int i = 0; i < chs.length; i++) { 15 list.add(chs[i]); 16 } 17 int index = 0;//设置要与其他字符比较的字符的下标 18 19 while (index < list.size()) { 20 for (int i = list.size() - 1; i > 0; i--) { //i是被比较的字符 21 //一定要设定第一个字符下标小于被比较的字符的下标,不然会把自己删除 22 if (list.get(index).equals(list.get(i)) && index < i) { 23 list.remove(i); 24 } 25 } 26 index++; 27 } 28 29 for (Object object : list) { 30 System.out.print(object); 31 } 32 } 33 34 }