Java 如何检查三位数字是否为回文?

Java 如何检查三位数字是否为回文?,java,Java,我正在用Java创建一个简单的回文测验 我应该在某个时候检查用户是否会输入大于或小于三位数的数字,如“1011”或“10”,并显示错误消息,如“输入错误”。但是,我不能用Java中的int.length()检查数字的长度,而我可以用字符串(String.length())检查数字的长度 我怎样才能解决这个问题 这是我的代码,没有三位数的if校验 import java.util.Scanner; public class Test { public static void main(St

我正在用Java创建一个简单的回文测验

我应该在某个时候检查用户是否会输入大于或小于三位数的数字,如“1011”或“10”,并显示错误消息,如“输入错误”。但是,我不能用Java中的
int.length()
检查数字的长度,而我可以用字符串(
String.length()
)检查数字的长度

我怎样才能解决这个问题

这是我的代码,没有三位数的if校验

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        System.out.println("Please enter a three digit number number and I will check if it's a palindrome.");

        // create scanner and input number

        Scanner input = new Scanner(System.in);
        int number = input.nextInt();

        int digit1 = (int)(number / 100);
        int remaining = number % 100;
        int digit3 = (int)(remaining % 10);

        System.out.println(number + ((digit1 == digit3) ? " is a palindrome" : " is not a palindrome"));


    }
}

您可以将int转换为String并使用length函数

Integer.toString(yourNumber).length()

获得输入后,添加
if
条件:

if (number >= 100 && number < 1000) {
   //Proceed with your logic
} else { 
   //Throw you message as invalid number
}
if(数字>=100&&number<1000){
//继续你的逻辑
}否则{
//将消息作为无效号码抛出
}

要检查一个数字是否具有某些属性,如果可能,最好使用数字运算。这通常会导致更快、更直接的代码

三位数的最小数字是100。三位数的最大数字是999。因此,您可以进行如下测试:

if ((number < 100) && (number > 999)) {
  System.out.println("Not a three-digit number :(")
}
if((数字<100)和&(数字>999)){
System.out.println(“不是三位数:(”)
}

检查
number<1000&&number>=100
:|此外,您正在执行
numberAsString
。您可以调用length()在此获取字符串的长度。抱歉,Mridul!忘记删除该行。现在已编辑。如果数字为int,则可以使用:
number<1000&&number>=100
。但我建议不要使用回文。为什么?如果用户输入
010
。对于int,它将被视为10,并因此给出错误。但作为字符串,它将是一个字符串palidrome。由您决定要向用户显示哪个结果,并因此使用该方法。当您只需检查数字是否大于100和小于1000,两次比较,不(隐藏)时,这是一种非常迂回且低效的方法循环。我觉得自己很愚蠢,因为我知道我正在努力为这个问题编写低效和错误的解决方案。谢谢大家,我知道有更好的方法来解决这个问题,但我没有注意到。