Erste Schritte Programm tut nicht das was es soll

happykobolt4

Mitglied
Hallo liebe Com,

Ich habe ein Problem ich hab in der Schule Informatik und muss als Hausaufgabe ein Programm schreiben dass erkennt ob ein eingegebenes Wort ein Palindrom ist oder nicht.
Mein Programm gibt jedoch nur "Das Wort ist ein Palindrom!" aus, auch wenn dies nicht der Fall ist.

Wäre nett wenn sich das mal einer angucken und mir meinen Fehler nennen könnte. Wenn ihr mir helft dann denkt daran das ich erst sein einem halben Jahr mich überhaupt mit Programmieren bzw. Java auseinandersetzte und somit vielleicht nicht alles kapiere was ihr in eurer Antwort meint.

So schonmal Danke für die Antworten =)

Happykobolt4

Code:
import java.io.*;

public class Plindrom {

    /**
     * @param args
     */
    public static void main(String[] args)  throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       
        String tmp;
        char buchstabe;
        int buchstabenanzahl;
        boolean palindrom = true;
        
        System.out.println("Guten Tag. Ich werde überprüfen ob das Wort das sie eingeben ein Palindrom ist oder nicht. Geben sie zuerst an wieviele Buchstaben das Wort hat:");
        buchstabenanzahl = Integer.parseInt(br.readLine());
        char wort[]= new char[buchstabenanzahl];
        
        System.out.println("Geben sie nun das Wort ein, indem sie nach jedem Buchstaben Enter drücken:");
        	for(int z=0; z<buchstabenanzahl; z++){
        		tmp = br.readLine();
        		buchstabe = charAt(0);
        	
        		wort[z] = buchstabe;
        	}
        int v=wort.length/2;

        	for(int i=0; i<v; i++){
        
        			if(wort[i]!=wort[wort.length-1-i]){
        				palindrom = false;
            
        			}
            
        	}
        
        if(palindrom == true){
            System.out.print("Das Wort ist ein Palindrom!");
        }else{
            System.out.print("Das Wort ist kein Palindrom!");
        }
        
            
    
    }

	private static char charAt(int i) {
		// TODO Auto-generated method stub
		return 0;
	}    
        
}
 
Hey,

na ja, diese Methode ist ein wenig witzlos:
Java:
private static char charAt(int i) {
	// TODO Auto-generated method stub
	return 0;
}
Die kannst du wieder schön löschen und den Aufruf
Code:
charAt(0);
durch
Code:
tmp.charAt(0);
ersetzen.

Aber allgemein ist das Einlesen sehr umständlich gemacht. Wieso jeden Buchstaben einzeln statt das ganze Wort über
Code:
br.readLine();
?

[TIPP]Nicht einfach den erstbesten Quickfix der Entwicklungsumgebung unüberlegt annehmen. 😉[/TIPP]
 
Ahhhhh danke du hast mir geholfen jetzt klappst=)

Das mit dem jeden Buchstaben einzeln ist zwar kompliziert aber ich hätte kp wie ich das sonst lösen sollte =)

Danke jedenfalls

happykobolt4
 
Die Frage nach der Buchstabenanzahl und die Schleife zum Aufnehmen einzelner Buchstaben ersetzt du einfach durch
Code:
String wort = br.readLine();
. Den Typ von wort also auf String ändern. Auf die einzelnen Buchstaben zugreifen kannst du ja mit
Code:
charAt()
analog zu deinem bisherigen Arrayzugriff.
 

Zurück
Oben