java 写两个方法实现判断回文数

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: ""

package sum;

import java.util.Scanner;

public class Ex5_3 {

public static int reverse(int num){

String b = "";

while(num!=0){

String a = Integer.toString(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.println("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.");}

}

}
我很认真很负责的帮你改好了 希望能采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-24
b=""+a;这句有问题
你这么写,相当于每次给b赋了“”+a的值。重写了b的内容。
应该这么写
b+=a;追问

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;就行。

相似回答