Witam. Tworzę program, który sprawdzi czy dana liczba jest palindromem (czytana od lewej do prawej równa czytanej od prawej do lewej).
Wyświetla mi się błąd:
Exception in thread "main" java.lang.NumberFormatException: For input string: "2284457131"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at polindrom.cyfra(polindrom.java:37)
at polindrom.main(polindrom.java:17)
Mój kod:
import java.util.*;
public class polindrom {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner czyt=new Scanner (System.in);
int t=czyt.nextInt();
for(int i=0;i<t;i++){
String liczba=czyt.next();
boolean pol=false;
int ile=0;
if (liczba==odtylu(liczba)){pol=true;}
while (pol==false){
liczba=Integer.toString(cyfra(liczba));
if (liczba==odtylu(liczba)){pol=true;}
i++;
}
System.out.println(liczba+" "+ile );
}//koniec pierwszej pętli
}
static String odtylu (String liczba){
String od ="";
for (int i=1;i<=liczba.length();i++){
char rob=liczba.charAt(liczba.length()-i);
od=od+rob;
}
return od;}
static int cyfra(String liczba){
int cyf=Integer.parseInt(liczba)+Integer.parseInt(odtylu(liczba));
return cyf;
}
}
Wyjaśni mi ktoś gdzie robię błąd? Przygotowuję się powoli do matury i nurtuje mnie to zadanie. Możliwe, że jest jakiś banalny błąd.. Piszę w programie Eclipse.