Java 如何检查三位数字是否为回文?
我正在用Java创建一个简单的回文测验 我应该在某个时候检查用户是否会输入大于或小于三位数的数字,如“1011”或“10”,并显示错误消息,如“输入错误”。但是,我不能用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
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,两次比较,不(隐藏)时,这是一种非常迂回且低效的方法循环。我觉得自己很愚蠢,因为我知道我正在努力为这个问题编写低效和错误的解决方案。谢谢大家,我知道有更好的方法来解决这个问题,但我没有注意到。