如何更改此方法以获取字符串而不是整数

时间:2010-03-26 00:17:13

标签: java methods java.util.scanner

这是原始代码:

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.hasNextStringin.nextString这样的方法我可以使用扫描器类中的哪些方法来执行我想要执行的操作?

2 个答案:

答案 0 :(得分:4)

您应该阅读documentation

您正在寻找nexthasNext

答案 1 :(得分:1)

使用Scanner.hasNext()

  

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