2017-06-08 10 views
0

5つの母音(a、e、i、o、u)のどれが最初の文字列にあるのか、2番目の文字列にあるのかをコードに伝える必要があります。これは私がこれまでに取り組んだことですが、私はいくつの母音がどれくらいあるかを印刷する方法に関して悩まされています。IndexOf:いくつの母音がいくつありますか?

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

if文のそれぞれで増分する別の変数、「totalVowels」などが必要です。そうすれば、ifステートメントで完了するまでに、合計金額をカウントしたことになります。 –

+0

私が手伝ってみる前に、本当にあなたの変数にもっとわかりやすい名前を付けることをお勧めします。これはおそらくあなたがdownvotedになっている主な理由です。また、正確な質問は何ですか?それぞれの母音のインスタンスがいくつあるかを印刷する必要がありますか? – Seeker

+0

@Seekerありがとうございます。 "(String 1)には5つの母音のうち_が含まれています。 –

答えて

1

あなたはtotalVowelsという変数(またはそのような何か)を設定し、それをあなたが母音に遭遇するたびにインクリメントする必要がある、と述べました。

私は今、これは本当にの最適な方法ではありません(あなたのためにそれを少し簡単にするために)独自のコードを取る、とあなたは私が

 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; 

何を意味するかを見ることができるようにそれを少し変更しますそれはあなたのコードに厳密に従っており、仕事をするべきです。

+0

これは非常によく働いたが、私は別の質問を持っている私は、ユーザーが自分の文字列を検索します「検索キー」を入力する必要があります。たとえば、「Goodbyeにはbyが含まれています。これは私がこれまで行ってきたことですが、「intはbooleanに変換できません」というエラーメッセージが表示されます。この? –

1

このコードスニペットを試してみてください

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

ニース、あなたが意味することを除いて、 。。。むしろ、VARよりもint型これは、異なる言語:)だ –

+0

@MichaelPeacockはい、もちろんの –

0

を試してみてください。私の上の男のように

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); 
関連する問題