Vorkommen von Zeichen

Ich soll eine Ausgabe mit einer Methode vorkommen(String wort) generieren, die wiefolgt aussieht:
Input: OTTO als String

O : 2
T : 2
T : 2
O : 2

Über mögliche Lösungsvorschläge würde ich mich sehr freuen, danke im voraus.
 

VfL_Freak

Top Contributor
Moin,

aha ... und was soll die Ausgabe darstellen (speziell die Ziffern) ??
Wie oft der jeweilige Buchstabe vorkommt?

Was habt ihr schion gelernt / dürft ihr nutzen ??

VG Klaus
 

VfL_Freak

Top Contributor
Dann poste mal Deinen bisherigen Ansatz !!
Hier wird keiner Deine Hausaufgaben erledigen - zumal es Dir auch nicht bringen würde!!

Mal so als Tipp: lauf zeichenweise durch den String zun zähle dabei die vorkommenden Buchstaben !!

VG Klaus
 

VfL_Freak

Top Contributor
mal davon abgesehen, dass es so nicht compilieren würde, da es nicht mal ansatzweise ein vollständiges (lauffähiges) Programm ist,
ist der Amsatz doch schon mal sehr schön!

Du hast also ein Char-Array mit den einzelnen Buchstaben des eingegebenen Wortes!
Und ein Schleife, um jedes Element des Arrays (jeden einzelnen Buchstaben) auszugeben!

Dabei könntest Du jetzt doch die Vorkommen zählen und anschließend ausgeben!
VG Klaus
 
mal davon abgesehen, dass es so nicht compilieren würde, da es nicht mal ansatzweise ein vollständiges (lauffähiges) Programm ist,
ist der Amsatz doch schon mal sehr schön!

Du hast also ein Char-Array mit den einzelnen Buchstaben des eingegebenen Wortes!
Und ein Schleife, um jedes Element des Arrays (jeden einzelnen Buchstaben) auszugeben!

Dabei könntest Du jetzt doch die Vorkommen zählen und anschließend ausgeben!
VG Klaus
und wie zähle ich die vorkommenden Zeichen?
 
public class testa4 {



public static void main(String[] args) {



String wort = readString("Bitte ein Wort eingeben");

vorkommen(wort);



}

public static void vorkommen (String wort) {

int [] array = new int [256];

char[] zeichen = wort.toCharArray();

int count =0;





for (int i = 0; i<wort.length(); i++) {







System.out.println(zeichen );

}



//System.out.println(zeichen + ":"+ count );

}



}
 

mihe7

Top Contributor
@Javauser19000 bearbeite mal bitte Deinen Kommentar und füge vor dem Code [code=Java] und nach dem Code [/code] ein. Sonst ist der Code erstens unleserlich und zweitens werden bestimmte Zeichen nicht angezeigt.
 
Java:
[B]public[/B] [B]class[/B] testa4 {



    [B]public[/B] [B]static[/B] [B]void[/B] main(String[] args) {

      

        String wort = [I]readString[/I]("Bitte ein Wort eingeben");

        [I]vorkommen[/I](wort);



    }

    [B]public[/B] [B]static[/B] [B]void[/B] vorkommen (String wort) {

        [B]int[/B] [] array = [B]new[/B] [B]int[/B] [256];

            [B]char[/B][] zeichen = wort.toCharArray();

            [B]int[/B] count =0;

          

          

            [B]for[/B] ([B]int[/B] i = 0; i<wort.length(); i++) {

              

                  

                      

                        System.[B][I]out[/I][/B].println(zeichen[I] );

                    }

               

                //System.out.println(zeichen[I] + ":"+ count );

            }
[/I][/I]
 

mihe7

Top Contributor
Nochmal kompakt ohne die Formatierungszeichen:
Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        vorkommen(wort);
    }   

    public static void vorkommen (String wort) { 
        int [] array = new int [256];
        char[] zeichen = wort.toCharArray();
        int count =0;

        for (int i = 0; i<wort.length(); i++) {
            System.out.println(zeichen[i]);
        }
        //System.out.println(zeichen[i] + ":"+ count );
    }
}

Die readString-Methode existiert hier (noch) nicht, vielleicht hast Du die aber auch statisch importiert.
 
ich habe eine Libor in dem Projekt, daher kann ich eine. String über die Konsole eingeben, der Fehler liegt irgendwo in der Methode vorkommen. Wenn ich Otto eingebe kommt
O
t
t
o

daher muss der Ansatz richtig sein, nur weiß ich nicht wie ich das Aufzählen richtig im code schreiben Sol,l
 

mihe7

Top Contributor
Ok, mal eine "Teilaufgabe":

Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        String buchstabe = readString("Bitte einen Buchstaben eingeben");
        vorkommen(wort, buchstabe.charAt(0));
    }  


    // Methode soll ausgeben, wie oft das Zeichen buchstabe im Wort vorkommt
    public static void vorkommen(String work, char buchstabe) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            // was tun?
        }
        System.out.println(buchstabe + ":"+ count );
    }
}
 
Ok, mal eine "Teilaufgabe":

Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        String buchstabe = readString("Bitte einen Buchstaben eingeben");
        vorkommen(wort, buchstabe.charAt(0));
    } 


    // Methode soll ausgeben, wie oft das Zeichen buchstabe im Wort vorkommt
    public static void vorkommen(String work, char buchstabe) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            // was tun?
        }
        System.out.println(buchstabe + ":"+ count );
    }
}
die for-Schleife soll schauen welcher Buchstabe an der Stelle i ist und ihn dann zählen oder?
 

VfL_Freak

Top Contributor
Nein, außer wenn char ein Zahlenwert wäre!

Zählen kannst Du grundlegend mit:
Java:
count = count + 1;
// oder
count += 1;
// oder
count++;

Jetzt mußt Du noch prüfen, ob der zu zählende Buchstabe der Gesuchte ist!

VG Klaus
 
Java:
    [B]public[/B] [B]static[/B] [B]void[/B] vorkommen (String wort) { 

        [B]char[/B] [] zeichen=wort.toCharArray();

        [B]int[/B] count = 0;

        [B]for[/B] ([B]int[/B] i=0; i<wort.length();i++) {

            [B]char[/B] x=zeichen[i];

            [B]if[/B] (zeichen[i]==x) {

                count +=1;

            }

            System.[B][I]out[/I][/B].println(zeichen[i] + ":" + count);}

        

    }

Ich habe es so probiert, jedoch kommen dann die zahlen 1 bis x jenachdem wie lange das wort ist...
 

VfL_Freak

Top Contributor
Java:
public static void vorkommen (String wort)
{
    char [] zeichen=wort.toCharArray();
    int count = 0;
    for( int i=0; i<wort.length();i++ )
    {
        char x=zeichen[i];     // ist Dir klar,
        if( zeichen[i]==x )    // was Du HIER machst ???
        {
             count +=1;
        }
        System.out.println( zeichen[i] + ":" + count );
    }
}

Du setzt 'x' auf den Wert von 'zeichen' und vergleichst direkt danach ob 'zeichen' auch wirklich gleich 'x' ist !!??!!

VG Klaus
 
Beim Abgeben sind wir noch nicht. Schau, das Ziel ist es, Dir dabei zu helfen, Code zu verstehen. Im besten Fall tritt ein "Aha-Effekt" ein und Du bist danach in der Lage solche Dinge selbständig zu lösen.
Anhand von meinem Code würde mir das leichter fallen zu verstehen, weil in dem Code aus #20 andere Variablen zu kommen, das verwirrt mich noch mehr.
 

mihe7

Top Contributor
OK, versuchen wir es näher an Deinem Code:
Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        vorkommen(wort);
    }   

    public static void vorkommen (String wort) { 
        char[] zeichen = wort.toCharArray();
        char x = 'a';
        int count =0;

        for (int i = 0; i<wort.length(); i++) {
             // zähle, wie oft der in Variable x gespeicherte Buchstabe im Wort auftaucht
        }
        System.out.println(x + ":"+ count );
    }
}
 
Java:
[B]public[/B] [B]static[/B] [B]void[/B] vorkommen (String wort) { 

        [B]char[/B] [] zeichen=wort.toCharArray();

        [B]char[/B] x= 'a';

        [B]int[/B] count = 0;

        

        [B]for[/B] ([B]int[/B] i=0; i<wort.length();i++) {

            

            [B]if[/B] (zeichen[i]==x) {

                count++;

            }

            System.[B][I]out[/I][/B].println(x + ":" + count);

            }

Nun schaut die Schleife nur auf den Buchstabe a, gibt es eine Möglichkeit das universell zu machen?
 

mihe7

Top Contributor
NB: Kannst Du beim Einfügen des Codes bitte nur Inhalte Einfügen (Strg+Shift+V), die Formatierungen stören.

Nun schaut die Schleife nur auf den Buchstabe a, gibt es eine Möglichkeit das universell zu machen?

Klar, indem Du das char x nicht als Variable im Rumpf der Methode sondern als Parameter angibst. Das ist genau die Methode aus aus Kommentar #20 :)

Java:
    public static void vorkommen(String work, char x) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            if (zeichen[i] == x) {
                count++;
            }
        }
        System.out.println(x + ":"+ count );
    }

Ist die Sache soweit klar?
 
NB: Kannst Du beim Einfügen des Codes bitte nur Inhalte Einfügen (Strg+Shift+V), die Formatierungen stören.



Klar, indem Du das char x nicht als Variable im Rumpf der Methode sondern als Parameter angibst. Das ist genau die Methode aus aus Kommentar #20 :)

Java:
    public static void vorkommen(String work, char x) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            if (zeichen[i] == x) {
                count++;
            }
        }
        System.out.println(x + ":"+ count );
    }

Ist die Sache soweit klar?
Ja das funktioniert, jedoch wie bekomme ich die Ausgabe von z.B. Otto in diesem Format hin:
O : 2
T : 2
T : 2
O : 2

Denn so sollte die Ausgabe aussehen und mit dem code funktioniert das bisher nicht
 

mihe7

Top Contributor
Wichtig ist erst mal zu verstehen, dass Du jetzt eine Methode hast, der Du ein Wort und einen Buchstaben mitgeben kannst und die Dir den Buchstaben, gefolgt von der Häufigkeit im Wort ausgibt.

D. h. wenn Du der Methode als Wort "OTTO" übergibst, und z. B. den ersten Buchstaben (hier also das 'O'), dann ist die Ausgabe

O: 2

Übergibst Du den zweiten Buchstaben (hier also 'T'), dann ist die Ausgabe

T: 2

Würdest Du jetzt also einfach für jeden Buchstaben aus dem Wort die Methode aufrufen, dann sollte das Ergebnis ja passen.

Folglich erweiterst Du den Code jetzt einfach um die ursprüngliche Methode aus der Aufgabe:
Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        vorkommen(wort);
    }   

    public static void vorkommen (String wort) { 
         // rufe die Methode vorkommen(wort, x) für jedes Zeichen aus Wort auf
    }

    public static void vorkommen(String wort, char x) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            if (zeichen[i] == x) {
                count++;
            }
        }
        System.out.println(x + ":"+ count );
    }
}
 
Wichtig ist erst mal zu verstehen, dass Du jetzt eine Methode hast, der Du ein Wort und einen Buchstaben mitgeben kannst und die Dir den Buchstaben, gefolgt von der Häufigkeit im Wort ausgibt.

D. h. wenn Du der Methode als Wort "OTTO" übergibst, und z. B. den ersten Buchstaben (hier also das 'O'), dann ist die Ausgabe

O: 2

Übergibst Du den zweiten Buchstaben (hier also 'T'), dann ist die Ausgabe

T: 2

Würdest Du jetzt also einfach für jeden Buchstaben aus dem Wort die Methode aufrufen, dann sollte das Ergebnis ja passen.

Folglich erweiterst Du den Code jetzt einfach um die ursprüngliche Methode aus der Aufgabe:
Java:
public class testa4 {
    public static void main(String[] args) {
        String wort = readString("Bitte ein Wort eingeben");
        vorkommen(wort);
    }  

    public static void vorkommen (String wort) {
         // rufe die Methode vorkommen(wort, x) für jedes Zeichen aus Wort auf
    }

    public static void vorkommen(String wort, char x) {
        char[] zeichen = wort.toCharArray();
        int count =0;
        for (int i = 0; i<wort.length(); i++) {
            if (zeichen[i] == x) {
                count++;
            }
        }
        System.out.println(x + ":"+ count );
    }
}
wie meinst du das mit aufrufen?
 

mihe7

Top Contributor
Ok, wir haben ein Gesamtproblem, das lautet: gib die Häufigkeit eines jeden Buchstabens in einem gegebenen Wort aus.

Das ist etwas kompliziert, daher zerlegen wir das Problem in kleinere Probleme, die sich leichter lösen lassen:

1. Gib die Häufigkeit eines gegebenen Buchstabens in einem gegebenen Wort aus
2. Führe 1. für jeden Buchstaben in einem gegebenen Wort aus.

Dadurch lösen wir das Gesamtproblem.

Punkt 1 haben wir mit der Methode erschlagen, die als Parameter ein Wort und einen Buchstaben entgegennimmt (vorkommen(wort, x);.

Wie Du ja richtig festgestellt hast, ist das aber nicht die Methode, die Du abgeben sollst. Daher bauen wir diese jetzt mit ein und diese muss nur noch der Punkt 2. umsetzen.

Wenn Du Dich leichter ohne Methoden tust, dann lösen wir das anders.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
A Zeichen darf nur 3x hintereinander vorkommen Java Basics - Anfänger-Themen 6
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines chars entfernen Java Basics - Anfänger-Themen 1
V Variablen Vorkommen programmieren Java Basics - Anfänger-Themen 18
K alle Vorkommen einer bestimmten Ziffer in einer Zahl zählen Java Basics - Anfänger-Themen 2
B gemeinsames Vorkommen der charactere von 2 Strings als String zurückgeben Java Basics - Anfänger-Themen 5
B seltenes Vorkommen eines Integers in einem Array Java Basics - Anfänger-Themen 13
J Array; Vorkommen zählen Java Basics - Anfänger-Themen 10
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
K Prüfen ob Strings 2mal vorkommen Java Basics - Anfänger-Themen 21
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
H Methoden Array auf Vorkommen eines Integers überprüfen Java Basics - Anfänger-Themen 2
K Alle vorkommen eines Zeichens in StringBuffer Objekt löschen Java Basics - Anfänger-Themen 6
C Vorkommen eines Zeichens zählen Java Basics - Anfänger-Themen 4
C Datei umbennen (letzes vorkommen in File) Java Basics - Anfänger-Themen 5
G Zufallszahlen die alles einmal vorkommen Java Basics - Anfänger-Themen 15
Z Feld prüfen ob 3 gleiche zahlen nach einander vorkommen Java Basics - Anfänger-Themen 3
H Mehrmaliges vorkommen eines Zeichens in einem String Java Basics - Anfänger-Themen 14
F Array - Vorkommen der einzelnen Werte ausgeben Java Basics - Anfänger-Themen 8
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
T or zeichen Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
S Arrayausgabe und nur einmal ein Zeichen davor Java Basics - Anfänger-Themen 12
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 17
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
H Fehlerausgabe (Ungewollte Zeichen) Java Basics - Anfänger-Themen 1
R Komische Zeichen in Java Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
H Verschiebung von Zeichen Java Basics - Anfänger-Themen 18
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
L Rekursion größtes Zeichen Java Basics - Anfänger-Themen 8
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
Y String auf allgemein Zeichen untersuchen Java Basics - Anfänger-Themen 3
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
H Zeichen im algorithmus Java Basics - Anfänger-Themen 4
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
G Zeichen suchen und Ausgeben. Java Basics - Anfänger-Themen 3
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
B zeichen eines String mit der kleinsten Frequenz zurückgeben Java Basics - Anfänger-Themen 25
m0n4ch Variablen String auf ungültige Zeichen überprüfen Java Basics - Anfänger-Themen 13
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
S Zeichen ab Suchstring einlesen Java Basics - Anfänger-Themen 6
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Pipe-Zeichen "|" in Java Java Basics - Anfänger-Themen 1
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
F Zeichen einer Datei zaehlen Java Basics - Anfänger-Themen 1
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
M problem mit diesem zeichen | Java Basics - Anfänger-Themen 10
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
B lanterna einzelne Zeichen aus dem Terminal löschen Java Basics - Anfänger-Themen 0
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
S Kleines Zeichen berechnen Java Basics - Anfänger-Themen 5
Q Erste Schritte Zeichen in String farblich hervorheben Java Basics - Anfänger-Themen 4
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9
M Input/Output Zeichen on Konsole einlesen Java Basics - Anfänger-Themen 3
DStrohma Operatoren Kleiner-Zeichen in Größer-Zeichen ändern wenn boolen true? Java Basics - Anfänger-Themen 6
G Input/Output Verhalten BuffferedReader bei unvollständigen Zeichen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben