Silbenzähler

KaffeeFan

Bekanntes Mitglied
Hey Leute,

habe mal wieder ein Problem, an dem ich gerade nicht weiterkomme...
Mein Programm soll später ein Wort einlesen, die Silben zählen und es mit Wörtern aus einem Array vergleichen und so eine Assonanz zu dem Wort finden.

Es hakt momentan daran, dass z.B. beim Wort "Haus" 2 Silben gezählt werden, da ja zwei Vokale drin sind, die aber eigentlich nur eine Silbe ergeben.

Hat jemand eine Idee, wie ich meinem Programm sagen kann, dass das bzw. auch "io" oder "ae" nur eine Silbe ist? Das Wort "Vegetarier" lassen wir da mal außen vor würde ich sagen :D

Gruß
Luk

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

    Scanner scan = new Scanner(System.in);
    String wort = scan.nextLine();
    int laenge = wort.length();

  
    int zaehler;
    int zaehler1;
    int zaehler2;
    int zaehler3;
    int zaehler4;
    int zaehler5;
  
    String arr[] =
    {
      "Haus", "Dachdecker", "Torschuss", "Lukas"
    };
  
    int arr1[] =
    {
      zaehler=0, zaehler1=0, zaehler2=0, zaehler3=0, zaehler4=0, zaehler5=0
    };

    int abz = arr.length;
    int b = 0;

    for (int i = 0; i < laenge; i++)
    {
      char buchstabe = wort.charAt(b);
      String parse = String.valueOf(buchstabe);

      if ("a".equals(parse))
      {
        arr1[0]++;
      }
      if ("e".equals(parse))
      {
        arr1[0]++;
      }
      if ("i".equals(parse))
      {
        arr1[0]++;
      }
      if ("o".equals(parse))
      {
        arr1[0]++;
      }
      if ("u".equals(parse))
      {
        arr1[0]++;
      }

      b++;
    }
    System.out.println("Das Wort hat " + arr1[0] + " Silben.");

    int z = 0;
    b = 0;
    int y = 1;

    for (int i = 0; i < abz; i++)
    {
      for (int e = 0; e < arr[z].length(); e++)
      {
        char buchstabe = arr[z].charAt(b);
        String parse = String.valueOf(buchstabe);
        System.out.println("  " + buchstabe);
        if ("a".equals(parse))
        {
          arr1[y]++;
          System.out.println("a");
        }
        if ("e".equals(parse))
        {
          arr1[y]++;
          System.out.println("e");
        }
        if ("i".equals(parse))
        {
          arr1[y]++;
          System.out.println("i");
        }
        if ("o".equals(parse))
        {
          arr1[y]++;
          System.out.println("o");
        }
        if ("u".equals(parse))
        {
          arr1[y]++;
          System.out.println("u");
        }
        b++;
      }
      System.out.println(arr[z] + " hat " + arr1[y] + " Silben");
      z++;
      y++;
      b = 0;
    }

  }

}
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

zunächst einmal: Du zählst keine Silben, sondern 'nur' die Vokale ..... :eek:

Wenn Du nun wirklich "io" oder "ae" zählen willst, dann musst Du halt Deine Prüfungen von ein auf zwei Zeichen erweitern :cool:

Gruß Klaus
 

Neue Themen


Oben