Ein char Wert wieder in String umwandeln


#1
Mein Problem: Am Ende des Quellendes will ich wieder den Buchstaben mit "pos" ausgeben. "pos" ist eine int variable und hat den Wert von einem Character. Wie kann ich diesen Character jetzt in den Buchstaben der am häufigsten vorkommt umwandeln? Hab grad nen kleinen Hänger :)
Java:
private void haeufigsterBuchstabe() {
        String eingabe = jTextFieldEingabe.getText();
        eingabe = eingabe.toUpperCase();
        char[] buchstaben = new char[ 26 ];
        for ( int i = 0; i < 26; i++ ) {
            buchstaben[ i ] = (char) ( 65 + i );
        }
      
        int[] haeufigkeiten = new int[ 26 ];
      
        for ( int i = 0; i < 26; i++ ) {
            haeufigkeiten[I] = haeufigkeit(eingabe,buchstaben[I]);
        }
        for (int i=0;i<26;i++){
            System.out.print(buchstaben[I]+""+haeufigkeiten[I]+" ");
        }
        System.out.println();
        int pos = 0; 
        int max = haeufigkeiten[0];
        for(int i=1;i<26;i++) {
            if (max<haeufigkeiten[I]) {
                max = haeufigkeiten[I];
                pos = i;
            }
        }
        pos = pos+65;

jTextFieldAusgabe.setText(pos+" "+max);
}
 
Zuletzt bearbeitet von einem Moderator:

HonniCilest

Erfahrenes Mitglied
#3
Java:
for ( int i = 0; i < 26; i++ ) {
            haeufigkeiten[I] = haeufigkeit(eingabe,buchstaben[I]);
        }
Das ist ungünstig den Text 26 mal durchzulaufen. Besser wäre du läufst den Text einmal durch und entscheidest dann an welcher Stelle im Array der Buchstabe gezählt wird.

Java:
char[] buchstaben = new char[ 26 ];
        for ( int i = 0; i < 26; i++ ) {
            buchstaben[ i ] = (char) ( 65 + i );
        }
Wozu?? Das reicht doch, wenn du deine Ausgabe entsprechend interpretierst.

Wie kann ich diesen Character jetzt in den Buchstaben der am häufigsten vorkommt umwandeln?
Aber genau das hast du doch bereits einmal in deinem Code?! Eigentlich weißt du daher wie! :)

Was machst du, wenn im Text jetzt z.B. ein ä ö ü ß steht?

Die 26 ist vermutlich Geschmackssache. Ich persönlich finde es schöner statt der 65 'A' zu schreiben.
'B' - 'A' = 1, 'A' - 'A' = 0 usw.
 
Zuletzt bearbeitet:
#4
Hallo Niklas102030,

Wie kann ich diesen Character jetzt in den Buchstaben der am häufigsten vorkommt umwandeln?
Ich habe eine eher allgemeinere Methode dazu geschrieben, sprich wie man einen Character in einen String umwandelt. Du kannst diese Methode gerne auf deinen Programmcode zuschreiben, wenn du das kannst - ich konnte es leider nicht :confused: Dennoch hoffe ich, dass ich dir weiterhelfen kann:

Java:
public void CharZuString()
    {
         char[] c = {'A', 'B', 'C'};
         String s = String.valueOf(c);
         int counter = 0;
        
        for(int i = 0; i < c.length; i++) {
            
            counter++;
            System.out.println("Wert ["+counter+"]: ["+i+"] = " + c[i]);
        }
    }
Freundliche Grüße
 

HonniCilest

Erfahrenes Mitglied
#5
Deine Methode macht nicht das was du meinst. counter hat immer den gleichen Wert wie i, s verwendest du nie. s ist außerdem 'ABC', als CharArrayZuString.

PS.: Ich weiß, dass es Spaß macht den Senf dazuzugeben und anderen zu helfen, aber es ist nicht gängig ätere Threads zu pushen.