UserKunal123:
関数count()などの単語の数をカウント再帰関数である:これは、資本母音で始まる単語の数がどのカウントして表示の下に私のコードです。
import java.util.*;
class Check
{
String str; int w;
StringTokenizer S;
void InputString()
{
Scanner sc=new Scanner (System.in);
System.out.println("Enter a String:");
str=sc.nextLine();
}
void counter(int nWord)
{
if(nWord<=S.countTokens())
{
String word=S.nextToken();
char first=word.charAt(0);
if(first=='A' || first=='E' || first=='I' || first=='O' || first=='U')
//Checking if the word begins with a CAPITAL VOWEL.
{
w++;
}
counter(nWord+1);
}
}
void display()
{
S=new StringTokenizer(str);
counter(1);
System.out.println("Given String: "+str);
System.out.println("Number of words beginning with capital vowels = "+w);
}
void main()
{
InputString();
display();
}
}
入力の場合:「言語指向プログラミングのJavaされたアンオブジェクト。」出力:= 3、このような単語の数
しかし、明らかに、与えられた文字列で4つのなどの言葉があります。私はミスを犯した場所知っていただきたいと思います。ありがとう!
ロバート・コック:
Javadocはおよそ言いますStringTokenizer.countTokens()
:
それは例外を生成せずにトークナイザのnextTokenメソッドを呼び出せる回数を計算します。現在の位置は進んでいません。
言い換えれば、それぞれの呼び出しの後nextToken
、countTokens
下の番号を返します。
これは、あなたが原因counter
ではないとして、多くの場合、あなたが期待するとして呼び出されます。
代わりにif (nWord<=S.countTokens())
、してみてくださいif (S.countTokens() > 0)
。