Java Strings Buchstaben vertauschen

lucien

Mitglied
Hallo ich habe ein Problem. Ich möchte die Buchstaben von zwei strings vertauschen, genauer gesagt möchte ich die Zeichen die an der gleichen stelle stehen tauschen.
Ich programmier ein Galgenmännchen. Das Wort ist z.B. Esel und man rät erst das e und dann das s.
String 1:e _ e _
String2:_ s _ _
wie krieg ich jetzt das s von string zwei in string eins?
 
Entweder du nutzt die Klasse StringBuilder anstatt String oder du musst jedes Mal den String mit der Methode substring() neu erstellen.
 
Gar nicht, Strings sind in Java immutable. Du musst schon einen neuen String erstellen, der deine Anforderungen erfüllt.
Oder du arbeitest mir char arrays.
 
Ich weiß nicht, was ein StringBuilder ist. Könnte ich die ganze Sache auch in String arrays zerlegen? Ich hab im Moment einen dritten String der das übernehemen soll, das klappt aber nicht.
Java:
 public void actionPerformed(ActionEvent e) {
     if (e.getSource()==bt1) {
        fehler=0;
         wort=tf1.getText();
        tf1.setText("");
        for (int i=0;i<wort.length();i++) {
         anzeige=anzeige+"_ ";
        }
        lb1.setText(anzeige);
     }
    }
   public boolean buchstabeEnthalten(String s, char ch) {
        for (int i =0; i < s.length();i++ ) {
            if (ch==s.charAt(i)) return true;
        }
        return false;
    }
    public void keyTyped(KeyEvent e){
     char ch=e.getKeyChar();
         if (buchstabeEnthalten(wort,ch)){
     anzeige2=anzeige;
     anzeige="";
     anzeige3="";
     for (int i=0;i<wort.length();i++) {
      if (ch==wort.charAt(i)){
       anzeige=anzeige+ch+" ";
            }
            else{
                    anzeige=anzeige+"_ ";
                   
                 }        
        }
        for (int i=0;i<anzeige.length();i++) {
                if(anzeige.charAt(i)!=anzeige2.charAt(i)){
                if(anzeige.charAt(i)==unterstrich.charAt(0)){
                 anzeige3=anzeige3+anzeige2.charAt(i)+" ";
                 
                }
                else{
                 anzeige3=anzeige3+anzeige.charAt(i)+" ";
                }
        }
        else{
            anzeige3=anzeige3+"_ ";
        }
     }
      lb1.setText(anzeige3);
     }
     else{
              falsch=falsch+ch+" ";
             lb2.setText(falsch);
              fehler++;
             repaint();
          }
        }
Die anzeige spinnt rum, sobald man einen Buchstaben eingibt und er merkt sich nur die letzten beiden
buchstaben.
 

Neue Themen


Zurück
Oben