Irgendwie scheint da wohl was falsch zu sein komme aber nicht darauf wo.
Es sollte anzeigen wie oft der Buchstabe in dem Wort vorkommt aber es erscheint immer nur 0 wo ist der Fehler drinnen kann mir jemand helfen?
Danke
Java:
importstaticjavax.swing.JOptionPane.*;/**
* Ein Programm das Auffordert einen Text einzugeben und ein Zeichen.
* Das Programm durchrechnet den text und gibt die Anzahl der Buchstaben aus.
* @author (xxx)
* @version 2009-12-10
*/publicclassZeichenSuche{publicstaticvoidmain(String[]args){String text=showInputDialog(null,"Bitte geben Sie einen Text ein");char zeichen=showInputDialog(null,"Bitte geben sie ein Zeichen ein").charAt(0);int laenge=text.length();int zaehler=0;int i=0;while(i<laenge){if(text.charAt(i)==zeichen){
zaehler++;}showMessageDialog(null," Der Buchstabe "+zeichen+" kommt "+zaehler+" mal in "+text+" vor ");}}}
Hast Du den Code denn mal ausgeführt? Bei der Prüfung steckst Du da in einer Endlosschleife da die Zählvariable i nicht hochgezählt wird! Nimm doch gleich eine for Schleife. Ausserdem lass Dir das Ergebnis erst nach der Schleife ausgeben.
Danke ausgeführt habe ich Ihn lt BlueJ sind keine Fehler drinen. In der Schule haben wir es genauso aufgeschrieben. Wie und was muß ich ändern damit es richtig ausgibt wie oft nun ein gewisser Buchstabe ausgegeben wird? Danke
Mit for Schleife z.B. so:
[JAVA=16]for(;i<laenge; i++) {
if(text.charAt(i)==zeichen)
zaehler++;
}
showMessageDialog(null," Der Buchstabe " +zeichen+ " kommt "+zaehler+" mal in "+text+" vor ");[/code]
Dein i wird nicht hochgezählt. Du musst ja bei jedem Durchlauf sagen, dass i um 1 erhöht werden soll.
In der for Schleife kann man sowas direkt im Schleifenkopf angeben (s. oben)
Lösung mit while:
[JAVA=16]while(i<laenge) {
if(text.charAt(i)==zeichen)
zaehler++;
i++;
}
showMessageDialog(null," Der Buchstabe " +zeichen+ " kommt "+zaehler+" mal in "+text+" vor ");[/code]
1. Wenn Ihr den Code SO in der Schule notiert habt, würde ich mir Gedanken machen, ob der Lehrer beabsichtigt hat, Euch einen absichtlichen Fehler finden zu lassen.
2. Eine gute Möglichkeit für Anfänger ist immer das Debuggen des eigenen Codes mit System.out.println() aufrufen an diversen Stellen im Code, wäre z.B. möglich innerhalb Deiner while()-Schleife. Also einfach mal alle Variablen pro Durchlauf ausgeben lassen und schauen was Sache ist.