0 Daumen
531 Aufrufe

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.

Avatar von

1 Antwort

0 Daumen

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;
}
}
Aufrufen kannst du das ganze (in der main-Methode) mit:

import java.util.Scanner; // oberhalb der Klasse

Scanner scanner = new Scanner("Grund und Boden und Rock'n Roll");
Eingabe eingabe = new Eingabe();
System.out.print(eingabe.zaehlen(scanner, "und"));

Avatar von

java.util.Scanner sc = new java.util.Scanner(System.in);
Eingabe.zaehlen(sc,"zwei");
--------------------------------
FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Typ unterscheiden sich
erwartet: int
erhalten: 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;
oberhalb von public class ... importierst dann ist es möglich Scanner sc = new Scanner(System.in) zu schreiben.

ich weiss halt nicht was ich da schreiben muss im programm bin halt neu im Studium...

FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Typ unterscheiden sich
erwartet: int
erhalten: class java.lang.String

das steht aber auch da weiss nicht was damit gemeint ist

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community