0

次の問題を解決する必要があります。一連のトークンを含むスキャナーをパラメーターとして受け入れる tokenStats という名前のメソッドを作成します。正当な整数であるすべてのトークンの合計、正当な実数であるが整数ではないすべてのトークンの合計、およびあらゆる種類のトークンの総数を出力する必要があります。たとえば、 data という名前の Scanner に次のトークンが含まれているとします。

3 3.14 10 イカ 10.x 6.0

tokenStats(data)次に;の呼び出し。次の出力を出力する必要があります。

整数: 13

実数: 9.14

合計トークン: 6

スキャナにトークンがない場合、メソッドは次を出力する必要があります。

整数: 0

実数: 0.0

合計トークン: 0

これが私の質問です。私は使用しようとしました

while (input.hasNext()) {

if (input.hasNextInt()) {

これは無限ループを作成し、

しかし、私が使用する場合

while (input.hasNext()) {

input.next();

if (input.hasNextInt()) {

それがintの場合、最初のトークンを失います...

私は何をすべきか?

4

3 に答える 3

0

この方法で確認することをお勧めします..すべてのシナリオをカバーしています

int totalint =0;
float totalfloat=0 ;
int count=0;
while(input.hasNext()) 
{
    String next = input.next();
    int n; float f;
    try{
        if(next.contains(".")
        {
            f= Float.parseFloat(next);
            totalfloat += f;
        }
        else{
            n= Integer.parseInt(next);
            totalint +=n;
        }            
    }
    catch(Exception e){ /*not int nor a float so nothing*/ }
    count++;
}
于 2013-12-09T04:13:18.270 に答える