здесь исходный код:Как изменить этот метод, чтобы получить строки вместо Интс
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, если не говорит, что вы попробуете снова и снова запустите.
Это то, что я пытался сделать, чтобы изменить его:
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
Какие методы из класса сканера я могу использовать для выполнения своих задач?
Я хочу, чтобы он удостоверился, что токен - это строка. hasNext() просто проверяет, что там что-то есть. – David
Проблема в том, что любой токен, который он мог бы иметь, это String. Вы заметите, что все методы hasNextX() соответствуют примитивным типам. Это потому, что класс Scanner может определить, может ли следующий токен быть превращен в X. Все можно превратить в String, поэтому hasNext() будет эквивалентом hasNextString(). –