如何解决回文中的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中已经实现了字符串反转:。另请参阅