Satzeingabe - Vokale zählen

  • Themenstarter Themenstarter Alaba
  • Beginndatum Beginndatum
A

Alaba

Gast
Liebe Leute,

ich soll ein kleines Programm schreiben, das zur Eingabe von Wörtern oder auch eines Satzes auffordert und anschließend nach einer Auswertung die Anzahl der einzelnen Vokale ausgibt. Problem: Mit meinen bescheidenen Java-Kenntnissen habe ich es bislang nur geschafft, im Code vorgegebene Wörter (hier "Beispieltext") auswerten zu lassen. Wie kriege ich es hin, dass ich zur Eingabe auffordere und diese Eingabe danach auswerte? Für mich ist das alles noch Neuland, daher diese Frage, die manch einen hier wundern mag.

So sieht mein Code bislang mit dem vorgegeben "Beispieltext" aus:

Java:
 public class Vokale {
 
	public static  String s = "Beispieltext";
 
	public static void main(String[] args) {
 
    HaeufigkeitVokal();
 
    }
 
    public static void HaeufigkeitVokal() {
 
      int anzahla = 0;   
      int anzahle = 0;
      int anzahli = 0;
      int anzahlo = 0;
      int anzahlu = 0;
 
         for (int i = 0; i < s.length(); i++) {
 
              if (s.charAt(i) == 'a')
              {
                   anzahla++;
}
 
 	          if (s.charAt(i) == 'e') {
 
		           anzahle++;       
}
 	          if (s.charAt(i) == 'i') {
 	        	 
		           anzahli++;       
}
 	          if (s.charAt(i) == 'o') {
  	        	 
		           anzahlo++;       
}
 	          if (s.charAt(i) == 'u') {
   	        	 
		           anzahlu++;       
}
 	     }
 
 System.out.println( anzahla + " * Anzahl a" );
 System.out.println( anzahle + " * Anzahl e" );
 System.out.println( anzahli + " * Anzahl i" );
 System.out.println( anzahlo + " * Anzahl o" );
 System.out.println( anzahlu + " * Anzahl u" );
}
}
 
2 Möglichkeiten:

1. erstmal empfehlenswert - scanner benutzen und per console eingeben.
2. GUI mir Swing und ein JTextField oder eine JTextArea benutzen und mit
Java:
feld.getText();
den String auslesen
 
Ich habe dir ein wenig Struktur in den Code gebracht - jetzt musst du nur noch "einlesen" implementieren und alles läuft. (Ach ja, Gross- Kleinschreibung habe ich auch ein wenig den Regeln angepasst)

Der Vorteil ist, dass du die Methode haeufigkeit schon sehr gut testen kannst, ohne dass die Eingabe, das GUI oder was auch immer vorhanden ist.

Java:
package com.javaforum;

public class Vokale {

	public static void main(String[] args) {
		String eingebenerString = einlesen();
		haeufigkeitVokal(eingebenerString);
	}
	
	private static String einlesen() {
		// Hier kannst du jetzt den String einlesen
		// dummy-Funktionalität
		return "Beispieltext";
	}

	public static void haeufigkeitVokal( String text) {

		int anzahlA = 0;   
		int anzahlE = 0;
		int anzahlI = 0;
		int anzahlO = 0;
		int anzahlU = 0;

		for (int i = 0; i < text.length(); i++) {
			if (text.charAt(i) == 'a') {
				anzahlA++;
			} else if (text.charAt(i) == 'e') {
				anzahlE++;       
			} else if (text.charAt(i) == 'i') {
				anzahlI++;       
			} else if (text.charAt(i) == 'o') {
				anzahlO++;       
			} else if (text.charAt(i) == 'u') {
				anzahlU++;       
			}
		}
		System.out.println( anzahlA + " * Anzahl a" );
		System.out.println( anzahlE + " * Anzahl e" );
		System.out.println( anzahlI + " * Anzahl i" );
		System.out.println( anzahlO + " * Anzahl o" );
		System.out.println( anzahlU + " * Anzahl u" );
	}
}
 
Wir haben das früher immer über den BufferedReader gemacht.
Java:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    	String s = input.readLine();

Damit machst du eine Konsoleneingabe und speicherst sie in s.

Nun musst du nur noch deiner Main-Class und deiner HaeufigkeitVokal-Class die IOException anfügen und es sollte gehen.
 
Aber überlass dem TO wenigstens die Aufgabe das jetzt am richtigen Ort einzubauen - wenn wir ihm die ganze Lösung vorkauen bringt es ihm nicht viel.
 

Zurück
Oben