Methoden Buchstabenzählen

Hannes26

Neues Mitglied
Hallo,

ich muss in der Uni Java Programmierung lernen und heisst auch dass ich noch totaler Anfänger bin. Ich bin bei irgentwie überfragt.

Ich solle eine Methode schreiben, hier die Aufgabe: mir geht es eigentlich direkt um die aufgabe b) ich bekomm einfach nicht die schleife richtig hin.

5. public static char getSignificantLetter(char [] letters, String type)
Aufgabe der Methode ist den am häu gsten auftretenden Buchstaben im Feld letters zu finden.
Der Parameter type wird für eine spätere Implementierung der textuellen sowie gra schen
Ausgaben benötigt.
a) Sie sollen in einem Histogramm die Häau gkeiten des Auftretens der Buchstaben festhalten.
Legen Sie dafür ein int-Feld histogram mit 256 Einträgen an, das ist namliche die Anzahl
Zeichen die in ASCII codiert werden können.
b) Iterieren Sie nun in einer geeigneten Schleife über alle Einträge von letters und inkrementieren
Sie im Histogramm den Eintrag des aktuellen Letters um eins, wobei der char
Buchstabe der Index in dem Feld histogram darstellt.

main methode
Java:
	public static void main(String[] args) {
		

		
		String string = "Hallo";
		char [] hallo = string.toCharArray();
		
		char anzahl = getSignificantLetter(hallo, null);
		

		System.out.println();
	        }

        }

Hier ist die Methode die geschrieben habe
public static char getSignificantLetter(char [] letters, String type)

Java:
	public static char getSignificantLetter(char [] letters, String type){
		
		int [] histogram = new int[256]; 
		for (int i = 0 ; i < letters.length ; i++){
			for(int j = 0; j < letters.length ; j ++){
				if(letters[i] == letters[j] ){	
					histogram[i]++;	
				} 	
			}
					
		}
		
		
		for(int l = 0; l < histogram.length ; l++){
			System.out.println("" +histogram[l]); // Ausgabe 11221, Aber will 1121
		}
	
		return 0; 
	}

Ich bekomm das mit dem index einfach nicht hin, Zählen tut er ja richtig, aber ich will dass er in das Histogramm nur einen Buchstaben aufführt.

Für eure Hilfe wäre ich sehr Dankbar.

Grüße
Johannes
 

strußi

Top Contributor
du hast
einen String text;
ein char[ alle buchstaben] mit allen buchstaben
und ein int[ alle buchstaben.length];
und aus deinem String liest du nacheinander jedes zeichen aus und in einer weiteren schleife fragst du ab ob der buchstabe, den du ausgelesen hast, dem index des char[] entspricht wenn ja, dann erhöhe den wert im int[] um eins

angedeuteter code
Java:
string text
char[] reverenz;
int[] zaehler;
char temp;
for( int i text buchstabenweise auslesen
  temp =text.charAt[ i];
  for( int rev vergleichen
        if( reverenz[ rev].equals( temp){
              zaehler[ rev] ++;
        else{}
 

nvidia

Bekanntes Mitglied
[...]Für eure Hilfe wäre ich sehr Dankbar.[...]

Die Lösung dieser derart einfachen Aufgabe steht im Aufgabentext selbst. Geht man die einfach von oben nach unten durch wird man Folgendes schreiben.

1. Eine Methode

Java:
public static char getSignificantLetter(char [] letters, String type){
        return 0;
    }

2. int-Array anlegen der Größe 256
Java:
public static char getSignificantLetter(char [] letters, String type){
        int histogramm[] = new int[256];
        return 0;
    }

3. Iterieren mit einer Schleife über letters
Java:
public static char getSignificantLetter(char [] letters, String type){
        int histogramm[] = new int[256];
        for(int i = 0; i < letters.length; i++){
            
        }
        return 0;
    }

4. Aktuellen "letter" als Index für das Histogramm verwenden und die Stelle um eins hochzählen (Im Text etwas sperriger formuliert)

Java:
public static char getSignificantLetter(char [] letters, String type){
        int histogramm[] = new int[256];
        for(int i = 0; i < letters.length; i++){
            histogramm[letters[i]]++;
        }
        return 0;
    }

Und auch wenn du ein totaler Anfänger bist, du gehst auf eine Universität, das setzt ein gewisses intellektuelles Grundniveau voraus. Und wenn du nicht fähig bist solche kleinen Probleme mit den Vorlesungs-, Referenzmaterialien oder mit Google zu lösen wirst du dein Studium nicht schaffen. Da kommen nämlich noch ganz andere Knaller auf dich zu.
 
Zuletzt bearbeitet:

Oben