2015-05-21 22 views
0

我試圖完成一個票證發行程序,在這個程序中,我必須問用戶一系列問題,但是程序有時一次詢問多個問題,有效地跳過在可以返回輸入之前的第一個問題,這裏是代碼的一部分,提出問題並在輸出之下。public String nextLine不按預期工作

System.out.println("Please enter date of Event (dd/mm/yyyy): "); 

ev.setDate(sc.nextLine()); 

System.out.println("Please enter Artist/Band name "); 

ev.setArtist(sc.nextLine()); 

System.out.println("Please enter name of Venue for event "); 

ev.setVenue(sc.nextLine()); 

System.out.println("Please enter name of city where event is being held: "); 

ev.setCity(sc.nextLine()); 

正如你可以看到這顯示如下,我不想要求用戶不放在空間,看起來很可怕!

請選擇您的參考號此事件的條目:
請輸入事件(DD/MM/YYYY)的日期:
請輸入歌手/樂隊的名字(用下劃線,詞與詞之間沒有空格):

我甚至嘗試了多種Scanner s乃至最終Scanner,但它似乎並沒有解決問題。

+1

是否有理由將「隱藏」部分的問題從「我們」中選擇「請爲此事件選擇參考號碼」?請添加它。我假設你正在使用'nextInt()'來讀取輸入。如果是這種情況,那麼將它改爲'Integer.parseInt(sc.next())'或在'nextInt()'調用下添加一個'sc.nextLine()'。 – Tom

+0

有沒有保密湯姆,我不認爲這是相關的,是的,它是Integer.parseInt(sc.next()) –

+0

*「我不認爲這是相關的」*這個問題是最後一個接受輸入,如何這可能不相關嗎? – Tom

回答

0

sc.nextLine();放在代碼末尾。它會免費緩衝區,而不是跳過一個問題。 +1並接受它是否有效。

+1

,似乎可以解決它,即使用戶需要按兩次輸入顯示下一個問題,但我寧願那輸入丟失。真的很感謝你的快速反應,謝謝你,並有一個很好的! –

+0

不客氣,我很樂意幫忙! –