2016-02-13 2 views
2

Я понимаю, что использование метода nextInt() не использует новый символ строки, поэтому для решения этого вопроса мне нужно использовать пустой метод nextLine() для перемещения.Java-сканер nextLine method

Вопрос в том, что в качестве альтернативного решения программа была бы открыта для любых ошибок во время выполнения, чтобы использовать два сканера: один для ввода строки и один для целых чисел?

Scanner in = new Scanner(System.in); 
Scanner ints = new Scanner(System.in); 

int userInt = ints.nextInt(); 
String userInput = in.nextLine(); 

Благодарим за любую помощь!

(отредактированный поэтому вопрос менее субъективны)

+0

попробуйте nextLine() и проанализируйте число, используя Integer.parseInt() –

+1

@JimmyPage Я не думаю, что это был его вопрос. – Tacocat

+1

Возможно, вы можете взглянуть на этот http://stackoverflow.com/questions/22542833/different-java-scanner-for-input-of-different-types –

ответ

1

Вопрос здесь

String userInt = ints.nextInt(); 

Вы вводите целочисленное значение в строковое значение попробовать

String userInt=ints.next(); 
//OR 
int userInt=ints.nextInt(); 

возвращение к ваш вопрос Нет, это не «плохо», чтобы иметь два сканера, это просто не требуется.

+0

извините! опечатка! что должно быть int userInt - исправлено в исходном сообщении, спасибо. если бы вы учили этому, научили бы вас одним способом над другим (два сканера для разных входов против одного сканера с использованием пустого метода nextLine())? – Paul

+0

Конечно. Хотя вы могли бы пометить мой ответ как тик (если он ответил на ваш вопрос)? 1) вам не нужны два сканера в классе, если вы не делаете что-то исключительное. 2) один сканер может использоваться для вашего случая Сканер in = новый сканер (System.in); int userInt = in.nextInt(); Строка userInput = in.nextLine(); или вы можете использовать in.next() вместо nextLine – BlueSlimShady

+0

OK Спасибо за помощь! – Paul

Смежные вопросы