Java:检查数字的每一位数字是否在一个范围内

Java:检查数字的每一位数字是否在一个范围内,java,arrays,loops,boolean,Java,Arrays,Loops,Boolean,我正在创建一个类的方法,该类将两个整数作为参数。它检查第一个数字的每一位,并确保它们小于或等于第二个数字 public static boolean digitRange(int x, int limit) { String number= Integer.toString(x); char[] digits=number.toCharArray(); boolean result=false; for(char c: digits) { if(I

我正在创建一个类的方法,该类将两个整数作为参数。它检查第一个数字的每一位,并确保它们小于或等于第二个数字

public static boolean digitRange(int x, int limit) {
    String number= Integer.toString(x);
    char[] digits=number.toCharArray();
    boolean result=false;
    for(char c: digits) {
        if(Integer.parseInt(String.valueOf(c))>limit) {
            result=false;
        }
    }
    return result;
}
假设0和5的预期输出为:

public static void main(String[] args){
    System.out.println(digitRange(0,5));//0 is les than or equal to 5. 
                                        //Therefore true is printed. 
} 
然而,我在每一个场景中都会出错,我找不到原因。 有人能帮我纠正一下数字范围法吗

String number= Integer.toString(x);
char[] digits=number.toCharArray();
boolean result=false;
for(char c: digits) {
    if(Integer.parseInt(String.valueOf(c))>limit) {
        result=false;
    }
}
return result;
您从未在任何地方将
result
设置为
true
。改为

boolean result=true;
但是,考虑一种完全不同的方法:

public static boolean digitRange(int x, int limit)
{
    int t = Math.abs(x);
    while (t > 0)
    {
        if (t % 10 > limit)
            return false;
        t /= 10;
    }
    return true;
}

您从未将结果值设置为true。一旦您建立了false,只需返回,因为您不再需要检查,并且如果您退出迭代,则返回true

public static boolean digitRange(int x, int limit) {
    String number= Integer.toString(x);
    char[] digits=number.toCharArray();

    for(char c: digits) {
        if(Integer.parseInt(String.valueOf(c))>limit) {
            return false;
        }
    }
    return true;
}

函数接受两个数字,并检查每个数字是否在第二个数字的范围内,如果所有数字都小于第二个数字,则返回true,否则返回false

public boolean check(int one,int two){
    while(one>0){
        if(one%10>two)
            return false;
        one=one/10;
    }
    return true;
}