2017-06-08 2 views
0

Ich muss den Code haben, um dem Benutzer zu sagen, wie viele der fünf Vokale (a, e, i, o, u) sich in der ersten und zweiten Zeichenfolge befinden. Dies ist, was ich bis jetzt aufgearbeitet habe, aber ich bin in Bezug darauf fest, wie zu drucken, wie viele Vokale insgesamt sind. VersuchenIndexOf: Wie viele Vokale gibt es?

Scanner in=new Scanner(System.in); 

    System.out.println("Enter String 1: "); 
    String s1=in.next(); 
    System.out.println("Enter String 2: "); 
    String s2=in.next(); 

    int a= s1.length(); 

    int b= s2.length(); 

    if (a<b) 
    System.out.println(s2 + "is longer than " + s1); 
    else if (b<a) 
    System.out.println(s1 + " is longer than " + s2); 
    else 
    System.out.println(s1 + " and " + s2 + " are the same length."); 

    int c=(s1.indexOf(('a'))); 
    int d=(s1.indexOf(('e'))); 
    int e=(s1.indexOf(('o'))); 
    int f=(s1.indexOf(('i'))); 
    int g=(s1.indexOf(('u'))); 



    if (c>=0) 
    System.out.println("AFFIRMATIVE FOR A"); 
    if (d>=0) 
    System.out.println("AFFIRMATIVE FOR E"); 
    if (e>=0) 
    System.out.println("AFFIRMAtive fOR O"); 
    if (f>=0) 
    System.out.println("AFFIRMATIVE for I"); 
    if (g>=0) 
    System.out.println("AFFIRMATIVE for U"); 
+0

Sie brauchen eine andere Variable, vielleicht 'totalvowels' oder etwas, die Sie in jeder if-Anweisung erhöhen. Wenn Sie mit den if-Anweisungen fertig sind, haben Sie bis zum Gesamtbetrag gezählt. –

+0

Bevor ich versuche zu helfen, würde ich wirklich vorschlagen, dass Sie viel aussagekräftigere Namen für Ihre Variablen verwenden. Dies ist wahrscheinlich der Hauptgrund, warum Sie downvoted werden. Auch, was ist die genaue Frage? Müssen Sie drucken, wie viele Instanzen jedes Vokals auftreten? – Seeker

+0

@Sucher Dank. Ich muss eine Zeile haben, die etwas wie sagt: "(String 1) enthält _ der 5 Vokale. Das ist die einzige Linie. –

Antwort

1

Wie der Kerl über mir sagte, eine Variable namens totalVowels (oder so ähnlich) festlegen müssen und es jedes Mal, wenn Sie einen Vokal begegnen zu erhöhen.

Ich werde Ihren eigenen Code nehmen (um es ein wenig einfacher für Sie), und es ein wenig ändern, so können Sie sehen, was ich meine

 int totalVowels=0; 

     int letterA=(s1.indexOf(('a'))); 
     int letterE=(s1.indexOf(('e'))); 
     int letterO=(s1.indexOf(('o'))); 
     int letterI=(s1.indexOf(('i'))); 
     int letterU=(s1.indexOf(('u'))); 

     if(letterA >=0){ 
      totalVowels ++; (this increments the total number of vowels) 
     } 
     if(letterE >=0){ 
      totalVowels ++; 
     } 
     if(letterO >=0){ 
      totalVowels ++; 
     } 
     if(letterI >=0){ 
      totalVowels ++; 
     } 
     if(letterU >=0){ 
      totalVowels ++; 
     } 

     System.out.println ("String1 contains" + totalVowels +" of the 5 vowels"); 
     totalVowels =0; 

Nun dies nicht wirklich die optimale Art und Weise der tun, aber es folgt Ihrem Code genau und sollte die Arbeit machen.

+0

Das funktionierte sehr gut, aber ich habe eine andere Frage.Ich muss den Benutzer einen "Suchschlüssel" eingeben, der meine Strings durchsuchen wird für den Wert, den der Benutzer eingibt. Zum Beispiel: Auf Wiedersehen enthält durch. Das ist, was ich bis jetzt aufgearbeitet habe, aber ich bekomme eine Fehlermeldung, die sagt, "int kann nicht in boolean konvertiert werden." Irgendwelche Ratschläge, wie zu tun Dies? –

1

int count = s1.split("a").length - 1 
+0

Nizza, außer dass Sie meinen int eher als var. Das ist eine andere Sprache :) –

+0

@MichaelPeacock Ja, natürlich –

0

diesen Code-Schnipsel ausprobieren.

int a=0,o=0,i=0,e=0,u=0; 
for (int ii = 0;ii<s1.length();ii++) 
{ 
    if (s1.charAt(ii)=='a')a++; 
    if (s1.charAt(ii)=='o')o++; 
    if (s1.charAt(ii)=='i')i++; 
    if (s1.charAt(ii)=='u')u++; 
    if (s1.charAt(ii)=='e')e++; 
} 
for (int ii = 0;ii<s2.length();ii++) 
{ 
    if (s2.charAt(ii)=='a')a++; 
    if (s2.charAt(ii)=='o')o++; 
    if (s2.charAt(ii)=='i')i++; 
    if (s2.charAt(ii)=='u')u++; 
    if (s2.charAt(ii)=='e')e++; 
} 
int total = a+o+i+u+e; 
System.out.println (total); 
Verwandte Themen