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

您应该阅读文档

您正在寻找nexthasNext

于 2010-03-26T00:23:42.960 回答
1

使用Scanner.hasNext()

public boolean hasNext()
如果此扫描器在其输入中有另一个标记,则返回 true。此方法可能会在等待输入扫描时阻塞。扫描仪不会超过任何输入。

于 2010-03-26T00:24:23.407 回答