当前位置: java社区 > 02-初窥门径 > 阅读正文

java字符串去重

2021.8.26.   470 次   793字

要求:把一个字符串去掉重复的字符,并生成新的新的字符串,最后打印到控制台上。字符串去重前,去重后,例如:

  • 你好,世界,今天又又是充满满希望的一天。
  • 你好,世界今天又是充满希望的一。

实现代码如下:

    public static void main(String[] args) {

        String s = "你好,世界,今天又又是充满满希望的一天。";

        char[] c = new char[s.length()];  // 不重复的字符数组c
        int length = 0;  // 记录数组c中当前存入字符数量

        for (int i = 0; i < s.length(); i++) {  // 遍历字符串每个字符

            boolean flag = false;  // 设置标记

            for (int j = 0; j < length; j++) {  // 循环判断字符数组c是否存在该字符
                if(c[j] == s.charAt(i)){
                    flag = true;  // 此字符已经存在
                }
            }

            if(!flag){
                c[length] = s.charAt(i);  // 不存在,则加入到c
                length++;
            }

        }
        String str = new String(c,0,length);  // 生成一个新的字符串
        System.out.println(str);
    }

程序执行结果:

  • 你好,世界今天又是充满希望的一。

此外,你可以使用 字符串.indexOf方法,快速判断字符串中是否存在某个字符,例如以下代码效果和上述一致

    public static void main(String[] args) {

        String s = "你好,世界,今天又又是充满满希望的一天。";

        String s2 = "";

        for (int i = 0; i < s.length(); i++) {
            if(s2.indexOf(s.charAt(i)) == -1){  // 不存在
                s2 += s.charAt(i);  // 拼接到新字符串
            }
        }
        System.out.println(s2);
    }

程序执行结果:

  • 你好,世界今天又是充满希望的一。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群