Ein char Wert wieder in String umwandeln

Niklas102030

Grünschnabel
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:
Moin,

habe Deine Frage nicht so ganz verstanden, aber alleine dies hier wird so nicht funktionieren, da 'haeufigkeiten' ein Array ist !!
if (max<haeufigkeiten)
Du kannst keinen Integerwert mit einem Array vergleichen !!

Und dann:
Java:
int max = haeufigkeiten[0];
...
max = haeufigkeiten;
Fällt Dir der Unterschied auf ?? ;)

VG Klaus
 
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:
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
 
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.
 
Zurück