Как я могу изменить этот метод, чтобы получить строки вместо целых - PullRequest
1 голос
/ 26 марта 2010

вот оригинальный код:

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. Какие методы из класса сканера я могу использовать, чтобы сделать то, что я намереваюсь сделать?

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

Вам следует прочитать документацию .

Вы ищете next и hasNext.

1 голос
/ 26 марта 2010

Использование Scanner.hasNext():

public boolean hasNext()
Возвращает true, если у этого сканера есть другой токен на входе. Этот метод может блокироваться во время ожидания ввода для сканирования. Сканер не перемещается дальше любого ввода.

...