Hallo zusammen,
ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe die Aufgabe ein Programm zu schreiben welches von einem eingegebenen String die Wörter zählt und dessen Anzahl ausgibt.
Bsp: Blaukraut bleibt Blaukraut und Brautkleid bleibt Brautkleid.
Blaukraut 2
bleibt 2
und 1
Brautkleid 2
So.
Realisiert werden soll das Ganze mit Hilfe eines Arrays welches die Worte des Strings aufnimmt, vergleicht und am Ende deren Anzahl ausgibt.
Mein "Schlachtplan" sieht folgendermaßen aus:
- String einlesen
- trim();
- Wörter zählen
- Array mit absoluter Anzahl der Wörter erstellen
- Wörter dem Array übergeben
- Wörter vergleichen
- jeweilige Anzahl der einzelnen Worte inkermentieren++
- Ausgabe der fertigen Liste
So weit die Theorie. Folgenden Code habe ich bisher:
Tester
Hauptklasse
in der Methode reihung() habe ich nun ein Array erstellt welches so groß ist wie die Anzahl der Worte (denk ich jedenfalls). Nun weiss ich nicht wie ich es hinbekomme, dass die eingegebenen Worte IN das Array gepackt und verglichen werden.
Hoffe mein Frage ist verständlich und ihr habt Lust mir ein wenig unter die Arme zu greifen.
Schrobi
ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe die Aufgabe ein Programm zu schreiben welches von einem eingegebenen String die Wörter zählt und dessen Anzahl ausgibt.
Bsp: Blaukraut bleibt Blaukraut und Brautkleid bleibt Brautkleid.
Blaukraut 2
bleibt 2
und 1
Brautkleid 2
So.
Realisiert werden soll das Ganze mit Hilfe eines Arrays welches die Worte des Strings aufnimmt, vergleicht und am Ende deren Anzahl ausgibt.
Mein "Schlachtplan" sieht folgendermaßen aus:
- String einlesen
- trim();
- Wörter zählen
- Array mit absoluter Anzahl der Wörter erstellen
- Wörter dem Array übergeben
- Wörter vergleichen
- jeweilige Anzahl der einzelnen Worte inkermentieren++
- Ausgabe der fertigen Liste
So weit die Theorie. Folgenden Code habe ich bisher:
Tester
Java:
import java.io.*;
public class WordCounterTester {
/**
*Mainmethode. Instanziert ein Objekt der Klasse WordCounter und führt
*dessen Methode show(); aus.
*
*@param args nothing.
*/
public static void main(String[] args) {
System.out.println("Bitte Text eingeben!");
WordCounter wordCount = new WordCounter();
wordCount.show();
}
}
Hauptklasse
Java:
import java.io.*;
public class WordCounter {
String input;
int zaehler = 0;
public void readIn() {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try {
input = br.readLine();
} catch (IOException e) {
e.printStackTrace(); // Fehler ausgeben
System.exit(0); // Programm abbrechen
}
}
public void count() {
readIn();
int zeichen;
int a;
int anzahl;
input = input.trim(); //Leerzeichen am Anfang entfernen.
zeichen = input.length(); //Anzahl der Zeichen der Eingabe.
input = " " + input;
a = input.indexOf(" ");
input = input.substring(a + 1);
while (a != -1) //Funktion indexOf: wird das gesuchte String nämlich " " nicht gefunden: wird -1 ausgegeben;
{
boolean check = input.startsWith(" ");
if (check == false) //War das Zeichen nach dem Leerzeichen kein weiteres, muss es ein
{
zaehler++; //Buchstabe sein -> Anzahl Wörter +1
}
a = input.indexOf(" "); //Setzen des Zeigers auf das nächste Leerzeichen
input = input.substring(a + 1); //Abschneiden des Strings bis inkl. des Leerzeichen
}
if (zeichen != 0) //der Satz enthält Wörter
{
System.out.println("Anzahl der im Satz enthaltenen Wörter: " + zaehler);
}
else //Wurden nur Leerzeichen eingegeben, folgt diese Ausgabe
{
System.out.println("Der Satz enthält keine Wörter.");
}
}
public void reihung() {
count();
System.out.println("anzahl wörter: " + zaehler);
String[] reihung = new String[zaehler];
}
public final void show() {
//count();
reihung();
}
}
in der Methode reihung() habe ich nun ein Array erstellt welches so groß ist wie die Anzahl der Worte (denk ich jedenfalls). Nun weiss ich nicht wie ich es hinbekomme, dass die eingegebenen Worte IN das Array gepackt und verglichen werden.
Hoffe mein Frage ist verständlich und ihr habt Lust mir ein wenig unter die Arme zu greifen.
Schrobi