Aufgabe:
Schreiben Sie eine Klasse Eingabe mit einer Klassenmethode zaehlen, die einen Scanner und eine Zeichenkette s als Argument annimmt. Die Methode soll über den Scanner Zeichenketten aus der Eingabe lesen, bis zu deren Ende. Sie soll zurückgeben, wie oft der Wert von s unter den Zeichenketten vorkommt.
Beispiel: Wird die Zeichenkette "und" gesucht und lautet die Eingabe
Grund und Boden und Rock'n Roll
so ist das Ergebnis 2.
import java.util.Scanner;public class Eingabe { public int zaehlen(Scanner scanner, String s) { int zaehler = 0; while(scanner.hasNext()) { // solange noch Wörter folgen String str = scanner.next(); // Nächstes Wort holen if (str.equals(s)) zaehler++; // Überprüfen ob es sich um die Zeichenkette s handelt, wenn ja zaehler erhöhen } return zaehler; }}
import java.util.Scanner; // oberhalb der KlasseScanner scanner = new Scanner("Grund und Boden und Rock'n Roll");Eingabe eingabe = new Eingabe();System.out.print(eingabe.zaehlen(scanner, "und"));
java.util.Scanner sc = new java.util.Scanner(System.in); Eingabe.zaehlen(sc,"zwei");--------------------------------FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Typ unterscheiden sicherwartet: interhalten: class java.lang.String================================TestSuite fehlgeschlagen :-(
klappt irgendwie auch nicht
Vermutlich erwartet der Test den Rückgabewert der Methode, gib diesen doch einmal aus.
Also mit:
System.out.println(Eingabe.zaehlen(sc,"zwei"));
Außerdem wäre es übersichtlicher wenn du den Scanner mit:
import java.util.Scanner;
ich weiss halt nicht was ich da schreiben muss im programm bin halt neu im Studium...
FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Typ unterscheiden sicherwartet: interhalten: class java.lang.String
das steht aber auch da weiss nicht was damit gemeint ist
Ein anderes Problem?
Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos