首页 > 解决方案 > 检查一个号码是否是唯一号码

问题描述

我编写了一个程序来检查一个数字是否是唯一数字。[唯一编号是没有重复数字且没有前导零的数字。]

我写了以下代码:

    Scanner sc=new Scanner(System.in)

    System.out.println("Enter the number to be checked: ");
    String num=sc.nextLine();

    if(num.charAt(0)!='0')
    {   
        Outer:
        for(int i=0;i<num.length();i++)
        {
            for(int j=0;j<num.length();j++)
            {
                if(num.charAt(i)==num.charAt(j))
                {
                    System.out.println("No, "+num+" is not a Unique number.");
                    break Outer;
                }
            }
            if(i==num.length()-1)
            {
                System.out.println("Yes, "+num+" is a Unique number.");
            }
        }
    }
    else
        System.out.println("No, "+num+" is not a Unique number as it has leading zeros.");

问题是任何数字都显示为不唯一,甚至是 12345。我想知道我哪里出错了。

标签: java

解决方案


i == j.

您应该更改循环的索引,以免将字符与其自身进行比较:

for(int i=0;i<num.length();i++) {
    for(int j=i+1;j<num.length();j++) {
        if(num.charAt(i)==num.charAt(j))
            ...

此外,您应该只输出“...是一个唯一的数字”。完成外循环后的消息。


推荐阅读