Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Java » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Java
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
java21
unregistriert
Java Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo ich stecke gerade bei einer Programieraufgabe fest wo ich probleme hab:

Erstellen Sie dann eine Klasse LetterCounter und löschen Sie im Quelltext alles zwischen public class
LetterCounter { und der schließenden geschweiften Klammer. Nach diesen Vorarbeiten können wir
beginnen.
Ihre Klasse soll Folgendes enthalten:
? eine Objektvariable text vom Typ String,
? einen Konstruktor, der einen Parameter vom Typ String erwartet und die Objektvariable text
damit initialisiert (wenn Sie den Parameter sinnvollerweise auch text nennen, benötigen Sie das
Schlüsselwort this, um die Objektvariable anzusprechen!),
? eine Methode int count(char letter) (Details siehe unten).

Die Methode count soll alle Vorkommen des übergebenen Buchstaben letter im String text zählen
und als Ergebnis zurückgeben. Dazu müssen Sie den String text Zeichen für Zeichen durchgehen; Sie
benötigen also eine for-Schleife. Ähnlich wie bei Arrays ist der Index des ersten Zeichens 0, die Länge
des Strings text liefert text.length() (im Gegensatz zu Arrays mit Klammern). Da Sie etwas zählen
wollen, brauchen Sie außerdem eine Zählvariable, die mit 0 initialisiert wird.
In der Schleife vergleichen Sie jeweils das i-te Zeichen (text.charAt(i)) mit letter und erhöhen
entsprechend die Zählvariable um 1. Nach der Schleife geben Sie den Wert dieses Zählers mittels return
zurück.
Achten Sie der Klasse und allen enthaltenen Methoden auf angemessene Javadoc-Kommentare mit den
entsprechenden Variablen (@author, @version, @param, @return. . . )!


Mein Ansatz:

public class LetterCounter {


String text;

public LetterCounter(String text){

string = this.text;

}

public void int count (char letter) {

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


}


}
}



Jetzt stecke ich irgendwie fest.

Was kann ich jetzt bei dem letzten Teil der Aufgabe machen?

Ich weiss gar nicht was ich da machen soll?

Das wird mir überhaupt aus der Aufgabe nicht klar?

Meine Ideen:
gepostet
29.03.2013 15:22
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Variable text hast du ja schon.
Den Konstruktor kriegst du so hin:
code:
1:
2:
3:
public LetterCounter(String text) {
this.text = text;
}

Und das Zeichenzählen:
Wir brauchen eine Variable, in der die Anzahl der Treffer gespeichert wird, die muss noch vor der Schleife defeniert werden und mit 0 initialisiert (da wir noch kein Zeichen gefunden haben)
Innerhalb der Schleife wird dann das Zeichen an Stelle i mit dem zu suchenden verglichen, gegebenenfalls das Ergebnis erhöht:
code:
1:
2:
3:
for(int i = 0; i < text.length(); i++)
    if(letter == text.charAt(i))
        erg++;


Zitat:
public void int count (char letter)

das passt so nicht:
void heißt, dass die Funktion keinen Rückgabewert hat, int sagt, dass ein int zurückgegeben wird.
Ja, was denn nun? int natürlich, wir wollen ja die Trefferzahl mitteilen -> void muss raus.

__________________
Syntax Highlighting fürs Board (Link)
29.03.2013 16:35 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
java21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich verstehe nur den letzten teil nicht erg++.

Warum wird das so gemacht , das verstehe ich auch an meiner musterlösung nicht.

Kannst du mir das bitte erklären?
29.03.2013 17:51
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich nehme mal an, deine Musterlösung sieht in etwa so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class LetterCounter {
    String text;
    
    public LetterCounter(String text) {
        this.text = text;
    }
    
    public int count(char letter) {
    	int erg = 0;
    	for(int i = 0; i < text.length(); i++)
    		if(letter == text.charAt(i))
    			erg++;
    	return erg;
    }
}


Ich mache mal ein Beispiel:
text = "java"
letter ='a'

Zu Beginn haben wir 0 Treffer.
Dann wird der string Zeichen für Zeichen durchgegangen, an Stelle 0 ist ein 'j'. 'j' ist nicht 'a', also passiert gar nichts.
Gehen wir weiter zum nächsten Zeichen: 'a' == 'a', also erg++. Das bewirkt, dass erg um eins erhöht wird -> neuer Inhalt:1.
Beim 'v' passiert wieder nichts, beim zweiten 'a' ist die Bedingung wieder erfüllt, also erneut erg++. Auf den alten Wert(=1) wird 1 addiert, erg ist jetzt 2.
Der string wurde jetzt komplett durchlaufen, in der Variablen erg steht 2.
Mit return erg wird diese 2 zurückgegeben, in "java" sind 2 'a' zu finden.

__________________
Syntax Highlighting fürs Board (Link)
29.03.2013 18:01 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
java21
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ab jetzt wird's ein wenig klarer . Danke eulersche Zahl
29.03.2013 21:09
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Java