Unten ist ein Programm für Palindrom. Wenn es Palindrom ist, wird es gedruckt JA, sonst NEIN. Ich bin nicht in der Lage zu verstehen, was ist der Unterschied in Aufruf:Fehler im Scanner
> int n=Integer.parseInt(in.nextLine());
> or int n=in.nextInt();
weil beide die gleiche Arbeit tun. 1. man nimmt String
als Eingabe und dann konvertiert es in int
2. man nimmt direkt int
.
Wenn die erste genommen wird, gibt es keinen Fehler. Aber wenn der zweite genommen wird, wird er in n gespeichert und dann wird YES ausgedruckt (beim Debugging habe ich herausgefunden, dass er in n gespeichert wird, aber die Eingabe string überspringt und dann mit str und s vergleicht und YES ausgibt).
So kann jemand die Logik dahinter erklären.
public class Test1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//int n=Integer.parseInt(in.nextLine());
int n=in.nextInt();
while(n!=0){
String s="";
String str=in.nextLine();
for(int i=str.length()-1;i>=0;i--){
s=s+str.charAt(i);
}
if(str.equals(s)){
System.out.println("YES");
}
else{
System.out.println("NO");
}
n--;
}
}
}