Häufigkeit von Buchstaben

Feras

Aktives Mitglied
Hi, ich habe ein Programm geschrieben, welches mir die Häufigkeit aller Buchstaben eines zuvor eingegebenen Satzes ausgeben soll. Dies soll in der Methode countLetter in einer Schleife geschehen, die per return count solange count ausgibt bis alle Buchstaben des Alphabets abgearbeitet wurden. Nun habe ich jedoch eine Fehlermeldung in der Methode countLetter. Diese besagt: " This method must return a result of type int". Aber die Variable count ist doch ein integer? Was soll mir dieser Fehler sagen?

MfG Feras

Java:
import java.util.Scanner;


public class Aufgabe2_2a {
	
			public static int countLetter(String cipher) {
				
				int index = 0;
				String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
				char letter = alphabet.charAt(index);
				
				cipher = cipher.toLowerCase();		
				letter = Character.toLowerCase(letter);		
				int count = 0;
		 
				for(int i = 0; i < alphabet.length(); i++)	{
					
				
				for (int k = 0; k < cipher.length(); k++) {
					
					char currentLetter = cipher.charAt(k);
					if (currentLetter == letter)
						count++;			
				}
				
				index++;
		 
				return count;
			}
		}

	public static void main(String[] args)	{
		
		String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		int index = 0;
		
		Scanner input = new Scanner(System.in);

		System.out.println("Geben Sie bitte den Text ein: ");
		String cipher = input.nextLine();		
		
		char aktbuchstabe = alphabet.charAt(index);
		
		
		for(int i = 0; i < alphabet.length(); i++)	{
			
		System.out.println(aktbuchstabe +" = ");System.out.print(countLetter(cipher));
		
		}

	}

}
 

Saheeda

Top Contributor
Wenn alphabet die Länge 0 hat, werden die Schleifen nicht durchlaufen und nix zurückgegeben. Es muss aber für jeden denkbaren Fall einen Rückgabewert geben.
 

Gucky

Top Contributor
Ein unbedingtes return in einer Schleife macht keinen Sinn, denn wird die Schleife betreten, so wird schon nach dem ersten Durchlauf abgebrochen. Eigentlich müsste der Compiler eine "Dead Code" oder "unreachable Code" Meldung ausgeben.
 

Feras

Aktives Mitglied
ok, dafür musste ich jetzt die for Schleife aus der countLetter Methode in die main verlegen. Jetzt habe ich das Problem, dass count bei jedem Durchlauf einen reset erhalten muss (soll ja von neu anfangen zu zählen), dass war mit der static methode nicht möglich. Daher habe ich die Methode in public int countLetter umbenannt und erhalte in Zeile 44 den Fehler "Cannot make a static reference to a non-static methode counterLetter(String cipher, char buchstabe)" Wie kann ich dies lösen?

Java:
import java.util.Scanner;

public class Aufgabe2_2a {

	public int countLetter(String cipher, char buchstabe) {

		int index = 0;
		String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char letter = alphabet.charAt(index);

		cipher = cipher.toLowerCase();
		letter = Character.toLowerCase(letter);
		int count = 0;

		for (int k = 0; k < cipher.length(); k++) {

			char currentLetter = cipher.charAt(k);
			if (currentLetter == letter)
				count++;
		}

		index++;

		return count;
		
		
	}

	public static void main(String[] args) {

		String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		int index = 0;

		Scanner input = new Scanner(System.in);

		System.out.println("Geben Sie bitte den Text ein: ");
		String cipher = input.nextLine();

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

			char aktbuchstabe = alphabet.charAt(index);

			System.out.println(aktbuchstabe + " = "
					+ countLetter(cipher, aktbuchstabe));

			index++;

		}

	}

}
 
Zuletzt bearbeitet:

Tarrew

Top Contributor
Du musst dir ein Objekt erzeugen um die Methode auszuführen.

Aufgabe2_2a a = new Aufgabe2_2a();
a.counterLetter(...). Habe deinen Code mal getestet und der gibt immer für jeden Buchstaben "2" aus.

Das ganze kann man übrigens auch wesentlich effezienter schreiben. Ich habs auch mal probiert:
Java:
public class Test {
	String alphabet = "abcdefghijklmnopqrstuvwxyz";
	public int[] countLetter(String cipher) {
		cipher = cipher.toLowerCase();
		int[] anzahl = new int[26];
		for (int i = 0; i < cipher.length(); i++) {
			char aktChar = cipher.charAt(i);
			int arrayPos = alphabet.indexOf(aktChar);
			anzahl[arrayPos]++;
		}
		return anzahl;

	}

	public static void main(String[] args) {

		Test test = new Test();
		Scanner input = new Scanner(System.in);

		System.out.println("Geben Sie bitte den Text ein: ");
		String cipher = input.nextLine();

		int[] result = test.countLetter(cipher);
		for (int i = 0; i < result.length; i++) {
			System.out.println(test.alphabet.charAt(i) + " = " + result[i]);
		}

	}
}

Du nimmst dir einfach ein int-Array mit 26 Einträgen. Für jeden Buchstaben gibt es ein Feld im Array. Dann gehst du nur 1x dein Wort durch und zählst jeweils für jeden Buchstaben den dementsprechenden int-Wert aus dem Array hoch.
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Du musst die for-Schleife nicht in die main verlegen.

Java:
public int methode(String str)
  for das Schleifengedöns...{

  }
  return irgendeinenWert;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O FilterStream häufigkeit der Buchstaben Java Basics - Anfänger-Themen 43
M Häufigkeit von Wörtern zählen Java Basics - Anfänger-Themen 6
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
Poppigescorn Häufigkeit einer zahl zählen Java Basics - Anfänger-Themen 5
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
B Array - die Häufigkeit der Zahl zählen Java Basics - Anfänger-Themen 9
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
H Klassen varibale einer klasse in einer anderen klasse aufrufen und häufigkeit ausgeben Java Basics - Anfänger-Themen 22
J Array nach häufigkeit sortieren Java Basics - Anfänger-Themen 4
J Zufallszahlen Häufigkeit Java Basics - Anfänger-Themen 8
P Hashtabelle-Häufigkeit von String zählen Java Basics - Anfänger-Themen 2
M Methoden String methoden ,Häufigkeit einm wort in der Zeichenkette Java Basics - Anfänger-Themen 14
Bastie Strings nach häufigkeit sortieren -aber wie? Java Basics - Anfänger-Themen 10
G Häufigkeit der Elemente in einer ArrayList zählen Java Basics - Anfänger-Themen 2
G Häufigkeit der Wörter einer Webseite zählen Java Basics - Anfänger-Themen 7
G Häufigkeit d. Auftritts eines Wertes im Array Java Basics - Anfänger-Themen 7
G absolute Häufigkeit Java Basics - Anfänger-Themen 13
E relative häufigkeit berechnen funktioniert nicht Java Basics - Anfänger-Themen 7
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
L Buchstaben entfernen zipZap Java Basics - Anfänger-Themen 8
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
H Buchstaben zählen Java Basics - Anfänger-Themen 9
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Tom/S KeyCode zu Buchstaben Java Basics - Anfänger-Themen 0
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Zufällige Buchstaben Java Basics - Anfänger-Themen 45
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
L Java Strings Buchstaben vertauschen Java Basics - Anfänger-Themen 4
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 10
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
B Zahlen und Buchstaben in cmd eingeben Java Basics - Anfänger-Themen 5
J Buchstaben aus String einzeln Zählen Java Basics - Anfänger-Themen 12
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
V Zufallsgenerator für Buchstaben Java Basics - Anfänger-Themen 22
A Erste Schritte konsoleneingabe von Buchstaben Java Basics - Anfänger-Themen 3
M Von File lesen Buchstaben lesen und zählen - scheitert an der Eingabe Java Basics - Anfänger-Themen 4
K Methoden Kontrollstruktur versagt bei Buchstaben... Java Basics - Anfänger-Themen 6
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M Benennung nach Buchstaben Java Basics - Anfänger-Themen 18
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
P toUpperCase() - Buchstaben die ersetzt werden als Großbuchstaben ausgeben Java Basics - Anfänger-Themen 5
R Regexp nur Buchstaben und Ziffener beliebig oft Java Basics - Anfänger-Themen 3
S Buchstaben/Wörter im String zählen Java Basics - Anfänger-Themen 6
R buchstaben einlesen - fehlermeldung schreiben? Java Basics - Anfänger-Themen 9
M String (mit Buchstaben) zu Int Java Basics - Anfänger-Themen 6
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
F Datentypen Zufällige Buchstaben vertauschen Java Basics - Anfänger-Themen 3
K Zahlen und buchstaben gemeinsam in ein array? Java Basics - Anfänger-Themen 17
F Leerzeichen zwischen jeden Buchstaben eines Strings einfügen Java Basics - Anfänger-Themen 16
J Buchstaben zählen Java Basics - Anfänger-Themen 17
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
R buchstaben zählen Java Basics - Anfänger-Themen 8
R In einem Palindrom 2 Buchstaben vergleichen Java Basics - Anfänger-Themen 16
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
P Buchstaben: Haeufigkeitstabelle Java Basics - Anfänger-Themen 9
S String Elemente bzw. Buchstaben miteinander vertauschen? Java Basics - Anfänger-Themen 6
T JTextField max. 8 Zeichen, nur Buchstaben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben