java笔试题(三)

public class Javatest77 {
    /**
     * 笔试题
     * 练习3:输入字符串(中间有若干个空格隔开),要求:以空格隔开,删除空格两边字符串的重复字符再输出,
     * 例:aabbbcc ddaaaffggbb变为abc dafgb(注意:输入的空格得保留下来)
     */
    public static void main(String[] args) {
        String s = "aabbbcc ddaaaffggbb";
        char[] arr = s.toCharArray();
        for (int i = 0,j = i + 1; i < arr.length - 1 && j < arr.length;) {
            //跳过空格
            if(arr[j] == ' '){
                i = j + 1;
                j = j + 1;
            }
            //i跳过重复需要被删除字符
            else if(arr[i] != arr[j]){
                i++;
                while(arr[i] == '*'){
                    i++;
                }
            }
            //重复需要被删除的字符用‘*’替换
            else if(arr[i] == arr[j]){
                arr[j] = '*';
            }
            //以上三个if任何一个成立,都会执行j++
            j++;
        }
        StringBuilder s1 = new StringBuilder();
        //遍历字符数组,跳过‘*’
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] != '*'){
                s1.append(arr[i]);
            }
        }
        System.out.println(s1.toString());
    }
}

 

posted @ 2022-03-27 19:32  翼小白  阅读(40)  评论(0)    收藏  举报