2017-02-12 38 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我希望'''出現在第一次輸入後,但在第二次輸入之前。所以簡單地按空間就什麼都不會做。 –

+0

我收回它。但你的問題很混亂。第一個例子意味着你想在打印出來之前輸入兩個值。第二個意味着你想輸入它們與你的輸出內聯。這是什麼? – shmosel

+0

@shmosel我編輯了第二個例子,重新說明這是我不想要的。我想要第一個,而不是第二個。 –

回答

0

問題是Scanner讀取輸入,直到用戶按Enter鍵,將一個換行符插入緩衝區。這個字符將被打印並導致下一個輸出出現在下一行。我不認爲你可以用Scanner做你想做的。您將需要使用InputStreamReader類。

+0

如何可以' InputStream'或'Reader'運行一些等同於'int variable = Scanner.nextInt()'而不換行的東西? –

+0

@MarkPuchalaII您的工作非常多。一種方法是一次一個地讀取每個字符,然後將輸入轉換爲數字。由於您閱讀每個字符,因此可以使用除換行符之外的其他內容,例如空格作爲分隔符。 –