为了账号安全,请及时绑定邮箱和手机立即绑定

下面是我用于查找重复项的 Java 程序。这里重复输出我只想要重复的字符作为输出

下面是我用于查找重复项的 Java 程序。这里重复输出我只想要重复的字符作为输出

一只名叫tom的猫 2021-09-29 16:35:45
public static void main(String[] args) {    Scanner sc = new Scanner(System.in);    String s1 = sc.nextLine();    int count = 0;    // breaking in to characters    char[] str1 = s1.toCharArray();    System.out.println("Duplicate are :");    //creating outer loop for string length    for (int i = 0; i < s1.length(); i++) {        //creating inner loop for comparison        for (int j = i + 1; j < s1.length(); j++) {            //comparing value of i and j            if (str1[i] == str1[j]) {                System.out.println(str1[j]);                System.out.println(count);                //increment after comparison                count++;                break;            }        }    }    sc.close();}输出:        aassdesdd        Duplicate are :        a        s        s        d        d
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

如果您只想打印连续的重复项(即对于输入“aassdesdd”,输出 asd 而不是 assdd),您可以将内部循环与等式检查结合起来:


for(int i = 0; i < s1.length(); i++) {

    for(int j = i + 1; j < s1.length() && str1[i] == str1[j]; j++) {

        System.out.println(str1[j]);

    }

}


查看完整回答
反对 回复 2021-09-29
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您只想打印连续的不同字符,那么您只有一个循环,并且每次迭代,您都可以检查当前和下一个字符。如果它们相同,则打印。为了避免再次打印相同的字符,我们可以设置标志。这可以使用单循环来实现


    char[] str1 = "aasssdesdd".toCharArray();

    boolean flag=true;

    for(int i = 0; i < str1.length-1; i++) {

        if (flag && str1[i]==str1[i+1])

        {

            System.out.println(str1[i]);

            // we found duplicate, mark the flag as false

            flag=false;

            continue;

        }

        flag = true;

   }

输出 :


a

s

d


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信