2012-01-06 147 views
0

我正在嘗試使用掃描器進行輸入的某些內容,但由於某種原因,掃描器無法正常工作。最後一行輸入不在Java掃描器類中掃描

我有下面的代碼運行,沒有什麼複雜的:

while(scan.hasNextLine()) 
    { 
     System.out.println(scan.nextLine()); 
    } 

就像一個試驗檯,以確保一切都被正確輸入。如果我複製我的測試材料,比如說

5 
4 
3 
2 
1 

輸出省略了最後一行。我非常肯定,這是因爲nextLine只會在字符串後面返回一個字符串,即使它是空的,但我需要它以這種方式工作,以最終輸入數據的方式工作。有誰知道我該如何解決這個問題?我唯一的猜測是要麼使用其他掃描儀或以某種方式在輸入末尾附加一個空字符串,但我不知道如何做第二個,我沒有想到一個類似掃描儀的東西會工作。提前致謝!

+0

什麼是你的輸入和輸出? – 2012-01-06 05:30:06

+0

如果我複製上面顯示的5,4,3,2,1,它會輸出5,4,3,2 – WWaldo 2012-01-06 05:31:58

+2

您是否可以張貼更多的代碼?不清楚你在做什麼。 – 2012-01-06 05:35:01

回答

2

您的最後一行MIGHT沒有「輸入」字符。所以它不會把它當作行的終點。嘗試

> 5 
> 4 
> 3 
> 2 
> 1 
> 
2

我在Eclipse上試過這個。我沒有重複Daryl Teo的建議;與您在.txt中提供的輸入相同。直行到標準輸入,以及指向Scanner到輸入文件讓我你想要的結果,那就是

5 
4 
3 
2 
1 

能否請您發佈一些更多的代碼,如評論請求?您所看到的錯誤似乎與您目前的Scanner沒有任何關係,聽起來很奇怪。