如题,编写一个字符串(a~z)过滤函数,对于字形符串中出现的多个相同的字符,将非首次出现的字符过滤掉。
思路:因为输入的字符类型(a~z)数量有限,所以可以用一个布尔类型的数组来记录当前字符的出现情况(已经出现过或者还没有出现过)。具体实现如下:
public class StringFilter { public static String stringFilter(String input) { boolean[] bools = new boolean[26]; for (int i = 0; i < bools.length; i++) { bools[i] = false; } if (input != null && input.length() > 1) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (!bools[c]) { sb.append(c); bools[c] = true; } } return sb.toString(); } return input; } }