Java搜索数字序列

时间:2018-03-29 21:12:38

标签: java

以下是我的项目的确切词语

“编写一个类和测试程序,提示用户输入一个三位数字 这样的数字是有序的。例如123,567。程序将循环直到a 输入正确的值。 (576不正确)“

我已经编写了这个搜索特定密码的程序,但我需要的是搜索数字有序的任何数值,并且我在编写搜索非特定值的程序时遇到问题。到目前为止我有什么。

         import java.util.Scanner;
         public class pass {
             public static void main(String[] args) {
                 int passw;
                 Scanner sc = new Scanner(System.in);
                 do {
                     System.out.print("Enter 3 digits in sequence");
                     passw = sc.nextInt();

                     if(passw != 567) {
                         System.out.println("Access Denied");
                     }
                     else {
                             System.out.println("Access Granted");
                     }

                 }
                 while(passw != 567);

             }
         }

2 个答案:

答案 0 :(得分:0)

您可以使用方法检查给定的数字是否有序。

private boolean isInOrder(int number){
    int digit = -1;
    while(number > 0){
        if (digit != -1 && digit != (number % 10) + 1)
            return false;  // Since the number is not in order
        digit = number % 10;
        number /= 10;
    }
    return true;  // If the number is in order
}

此方法可以检查数字(任何长度,不仅是3)是否符合问题中指定的顺序。

答案 1 :(得分:-2)

由于您知道您的“密码”将是一个只有三位数的整数,因此您可以使用if语句轻松完成数字是否已订购。试试下面的代码,看看它是否适合你!

public class ThreeDigitPasswordTest {

    public static boolean testPassword(int number) {
        char[] cArr = String.valueOf(number).toCharArray();
        if((cArr[2] == cArr[1] + 1) && cArr[1] == cArr[0] + 1)
            return true;
        return false;
    }


    public static void main(String[] args) {
        System.out.println(testPassword(567)); //prints "true"
        System.out.println(testPassword(576)); //prints "false"
    }
}