package ch05;
import java.util.Scanner;
public class Ex5_3 {
public static int reverse(int num){
String b = " ";
while(num!=0){
char a = (char)(num%10);
num = num/10;
b = " "+ a;}
int number = Integer.parseInt(b);
return number;}
public static boolean isPalindrome(int num){
int number = reverse(num);
boolean palindrome = true;
if(num==number)
{palindrome = true;}
else
{palindrome=false;}
return palindrome;}
public static void main(String[] args) {
System.out.print("enter the number");
Scanner input= new Scanner(System.in);
int num=input.nextInt();
if((isPalindrome(num))==true)
{System.out.print("the number is palindrome.");}
else
{System.out.print("the number isnt palindrome.");}
}
}
我知道应该可以直接判断就输出
但是课本要求两个方法。。
应该是int number = Integer.parseInt(b); 出问题
但是没有报错
输入数字后显示
enter the number123
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
T_T 改了,显示
Exception in thread "main" java.lang.NumberFormatException: For input string: " "
1.char a = (char)(num%10);
2.num = num/10;
3.b = " "+ a;
这段代码里:
你把数字强转成char型,0-9对应的ASCII码值并不是数字0-9,具体是什么自己查。
没错。
改成b+=a;就行。