1

元のコードは次のとおりです。

public static int getInt () 
{
    Scanner in = new Scanner (System.in) ; 
    if (in.hasNextInt())
    {
        int a = in.nextInt() ; 
        return a ; 
    }
    else
    {
    System.out.println ("try again:") ; 
    return getInt () ; 
    }
}

これは、受け取った入力が int かどうかをチェックして確認します。そうである場合は int を返し、そうでない場合は再試行して再実行するように指示します。

これは私がそれを変更するためにやろうとしたことです:

public static String getIns () 
    {
        Scanner in = new Scanner (System.in) ; 
        if (in.hasNextString())
        {
            String a = in.nextString() ; 
            return a ; 
        }
        else
        {
        System.out.println ("try again:") ; 
        return getIns () ; 
        }
    }

しかし、これはうまくいきません。私はスキャナークラスのドキュメントに目を通しましたが、問題は次のようなメソッドがないことだとin.hasNextString思いin.nextStringます。

4

2 に答える 2

4

ドキュメントを読む必要があります。

nextとを探していますhasNext

于 2010-03-26T00:23:42.960 に答える
1

使用Scanner.hasNext():

public boolean hasNext()
このスキャナの入力に別のトークンがある場合は true を返します。このメソッドは、入力がスキャンされるのを待っている間にブロックされる場合があります。スキャナは入力を超えて進みません。

于 2010-03-26T00:24:23.407 に答える