2017-02-12 37 views
1

Я пытаюсь сделать что-то, что выглядит примерно так:Как назначить значения со сканером при одновременной печати одной строки?

Move # to #. Например, Move 1 to 3

Я попытался System.out.print("move " + input.nextInt() + " to " + input.nextInt())

Это прекрасно работает, но я не знаю, как присвоить значения из этих входов.

Это работает, но это не то, что я хочу:

System.out.print("move "); 
int first = input.nextInt(); 
System.out.print(" to "); 
int second = input.nextInt(); 

Я не хочу этого, потому что вместо move # to #, он дает это:

move # 
to # 

Как я могу держать все входы в одной строке, все еще присваивая переменные входным значениям?

Для того, я хочу, чтобы линия выглядеть следующим образом:

перед первым входом:

Move _ 

после первого ввода:

Move # to _ 

после второго входа:

Move # to # 
+0

@shmosel Я хочу, чтобы 'to' появлялся после первого ввода, но перед вторым входом. Поэтому простое нажатие пространства ничего не сделало бы. –

+0

Я беру это обратно. Но ваш вопрос запутан. Первый пример означает, что вы хотите ввести оба значения перед их печатью. Второй означает, что вы хотите ввести их в строку с вашим выходом. Что он? – shmosel

+0

@shmosel Я отредактировал второй пример, чтобы повторить, что это то, чего я НЕ хочу. Я хочу первый, а не второй. –

ответ

0

Проблема заключается в том, что Scanner считывает ввод до тех пор, пока пользователь не нажмет Enter, который вставляет символ новой строки в буфер. Этот символ будет напечатан и вывести следующий вывод на следующую строку. Я не думаю, что вы можете делать то, что хотите, с Scanner. Вместо этого вам нужно будет использовать класс InputStream или Reader.

+0

Как можно " InputStream' или 'Reader' запускают что-то эквивалентное' int variable = Scanner.nextInt() 'без новой строки? –

+0

@MarkPuchalaII С гораздо большим количеством работы с вашей стороны. Один из способов - прочитать каждый символ по одному самостоятельно, а затем преобразовать ввод в число. Поскольку вы читаете каждый символ, вы можете использовать что-то отличное от новой строки, например пробел, в качестве разделителя. –