Könnt ihr mir mal sagen, wo mein Fehler liegt? Das Programm zeigt mir einen error!!!
Java:
import java.util.Scanner;
/**
*
* Dieses Programm prüft, ob es sich dei dem eingegeben Wort
* um ein Palindrom handelt. Palindrome sind Wörter, wie Uhu,
* Lagerregal, Rentner, Rotor, Otto oder Reittier. Die Eingabe
* erfolgt über die Konsole.
*
* @version 1.0 vom 14.02.2011
* @author Karl Hermann
*/
public class Palindrom{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int lenge,i,leeranz=0,k=0;
//Wort eingeben
System.out.print("Eingabe: ");
char[]wort = sc.nextChar();
lenge=wort.length;
boolean Palindrom=true;
for(i=0;i<wort.length;i++){ //Prüft ob Leerzeilen Vorhanden sind und zählt sie mit
if(wort[i]>=65&&wort[i]<=91||wort[i]>=97&&wort[i]<=123){
}else{
leeranz++;
}
}
if(leeranz==0){ //Ohne leerzeilen das wort auf palindrom prüfen
System.out.print("Das Wort lautet:\t");
for(i=0;i<wort.length;i++){
System.out.print(wort[i]);
//Großbuchstaben in Kleinbuchstaben umwandeln
if(wort[i]>=65&&wort[i]<=91){
wort[i]=(char)(wort[i]+32);
}
//wenn das erste Wort != dem letzten Wort->Palindrom=false
if(wort[i]!=wort[wort.length-(i+1)]){
Palindrom=false;
}
}
//Ausgabe
if(Palindrom==false){
System.out.print("\n\t\t->Es ist kein Palindrom!");
}else{
System.out.print("\n\t\t->Es ist ein Palindrom!");
}
}
if(leeranz>0){//Mit leerzeilen den Satz in ein anderes Array schreiben, und die Leerzeilen bzw. sonderzeichen auslassen
System.out.print("Der Satz lautet:\t");
for(i=0;i<wort.length;i++){ //Satz in Urzustand ausgeben
System.out.print(wort[i]);
}
char[]wort2=new char[wort.length-leeranz];
for(i=0;i<wort.length;i++){ //Satz ohne Sonderzeichen in eigenes Array
if(wort[i]>=65&&wort[i]<=91||wort[i]>=97&&wort[i]<=123){
wort2[k]=wort[i];
k++;
}
}
System.out.println();
for(i=0;i<wort2.length;i++){//Großbuchstaben auf Kleinbuchstaben machen
if(wort2[i]>=65&&wort2[i]<=91){
wort2[i]=(char)(wort2[i]+32);
}
}
for(i=0;i<wort2.length;i++){//Prüfen wie ein Wort
if(wort2[i]!=wort2[wort2.length-(i+1)]){
Palindrom=false;
}
}
System.out.println();
if(Palindrom==true){//Ausgabe ob Palindrom oder nicht
System.out.println("----> Ist ein Palindrom");
}else{
System.out.println("----> Ist kein Palindrom");
}
}
}
}
Zuletzt bearbeitet von einem Moderator: