如何解决回文中的java.lang.NumberFormatException?

如何解决回文中的java.lang.NumberFormatException?,java,palindrome,numberformatexception,Java,Palindrome,Numberformatexception,我不知道为什么它不起作用。。。我试着把它从int改为long。。。最后一个输入46894导致问题。。。请帮帮我。 这是我的密码: import java.util.*; public class palimdrone { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] number = new int[12]; int i

我不知道为什么它不起作用。。。我试着把它从
int
改为
long
。。。最后一个输入
46894
导致问题。。。请帮帮我。
这是我的密码:

import java.util.*;

public class palimdrone
{
   public static void main(String[] args)
   {
      Scanner scan = new Scanner(System.in);
      int[] number = new int[12];

      int input = scan.nextInt();

      for(int x=0;x<input;x++)
      {  
         number[x] = scan.nextInt();
      }

      for(int a=0;a<input;a++)
      {
         long tot =0,sumA=0,sumB=0,attempt=0;
         sumA = number[a];sumB=reverse(number[a]);
         boolean palin=false;

         if(sumA==sumB)
         {
            palin = true;
            attempt++;
         }
         else
         {
            while(attempt!=10)
            {
               attempt++;               
               tot = sumA+sumB;
               if(tot == reverse(tot))
               {
                  palin=true;  
                  break;
               }

               sumA=tot;
               sumB=reverse(tot);    
            }
         }

         if(palin==true)
            System.out.println(tot+" is Palindrome ; Attempt: "+attempt);
         else
            System.out.println(tot+"; None");
      }
   }

   public static long reverse(long num)
   {
      String tnum=""+num;
      String reverse="";
      for(int x=tnum.length()-1;x>=0;x--)
      {
         reverse = reverse+tnum.charAt(x);
      }

      num = Integer.parseInt(reverse);
      return num;
   }

}
import java.util.*;
公共类回文
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
int[]编号=新int[12];
int input=scan.nextInt();

对于(int x=0;x2284457131大于
Integer.MAX_值
。尝试使用
Long.parseLong(reverse)
而不是
Integer.parseInt(reverse)

2284457131大于
Integer.MAX_值
。尝试使用
Long.parseLong(reverse)
而不是
Integer.parseInt(reverse)

最好将输入解析为字符串而不是数字,这样您就不必担心溢出

static boolean isPalindrome(String str) {
    StringBuilder strBuilder = new StringBuilder(str);
    strBuilder = strBuilder.reverse();

    return str.equals(strBuilder.toString());
}
将输入作为字符串或将整数转换为字符串

    Scanner scan = new Scanner(System.in);
    String input = scan.next();
    System.out.println(isPalindrome(input));

最好将输入解析为字符串而不是数字,这样就不必担心溢出

static boolean isPalindrome(String str) {
    StringBuilder strBuilder = new StringBuilder(str);
    strBuilder = strBuilder.reverse();

    return str.equals(strBuilder.toString());
}
将输入作为字符串或将整数转换为字符串

    Scanner scan = new Scanner(System.in);
    String input = scan.next();
    System.out.println(isPalindrome(input));

查看
int
中可以保存的最大值:顺便说一句:java中已经实现了字符串反转:。另请参阅查看
int
中可以保存的最大值:顺便说一句:java中已经实现了字符串反转:。另请参阅