华为2014笔试算法题(字符串处理部分) 1.通过键盘输入一串小写字母(a~zA-Z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。
class="java" name="code">import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; public class Test { public static void main(String[] args) throws Exception { BufferedReader strin = new BufferedReader(new InputStreamReader( System.in)); String str = strin.readLine(); char[] charArray = str.toCharArray(); ArrayList list = new ArrayList(); HashSet hashSet = new HashSet(Arrays.asList(str.toCharArray())); for (int i = 0; i < charArray.length; i++) { char c = charArray[i]; if (String.valueOf(c).matches("[a-zA-Z]") && !list.contains(String.valueOf(c)) && (str.indexOf(String.valueOf(c), i + 1) > -1)) { list.add(String.valueOf(c)); System.out.print(String.valueOf(c)); } } } }
?
?