Java:检查数字的每个数字是否在一个范围内
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:检查数字的每个数字是否在一个范围内相关的知识,希望对你有一定的参考价值。
我正在创建一个类的方法,它将两个整数作为参数。它检查第一个数字的每个数字,并确保它们小于或等于第二个数字。
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.
}
但是,我在每一个场景中都变得虚假,我找不到原因。请有人帮我纠正digitRange方法。
答案
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。只要你已经建立了错误就可以返回,因为你不再需要检查,如果你离开了迭代,则返回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;
}
以上是关于Java:检查数字的每个数字是否在一个范围内的主要内容,如果未能解决你的问题,请参考以下文章