我從我過去的經驗中瞭解到的是nextInt()
或nextDouble()
將繼續搜索,直到找到相同或下一行中的整數或雙精度值無關緊要,同時讀取字符串作爲輸入通過掃描儀類next()
認爲那些字符串之前的空間,並保持光標在同一行,其中nextLine()
將考慮next()
如果在代碼nextLine()
之前使用的剩菜剩餘,有人可以幫助我更詳細地瞭解這一點,特別是約nextLine()
其中它開始和光標結束?另外,請告訴我,我認爲是否有錯誤是正確的。使用掃描儀類的輸入
-4
A
回答
1
你的第一個理解是錯誤的。
我從我過去的經驗理解是.nextInt()或 .nextDouble()將繼續搜索,直到整數或雙 在同一或下一行也沒關係
被發現
nextInt()
和nextDouble()
分別等待整數和2倍。如果它得到了字符串而不是它的期望,它會拋出InputMismatchException
。
您可以運行此代碼並親自查看。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
s.nextInt();
}
}
根據您的報價:
.nextInt()或.nextDouble()將繼續搜索,直到整數 或雙在相同或沒有關係的下一行發現」 t matter
給出意見:Abcdf234gd
。你不會得到234
。你得到InputMismatchException
。
爲.next()
和.nextLine()
,
.next()
:只有讀寫,直到遇到一個空格或EOF
返回一個字符串。
.nextLine()
:返回字符串直到遇到\n
或\r
或EOF
。意思是,它返回整條線。
的光標位置
next()
:
考慮字符串:
ABC DEF GHI JKL MNO PQR STU VWX YZ
初始位置:
->ABC DEF GHI JKL MNO PQR STU VWX YZ
當你調用next()
,將光標移動到:
ABC ->DEF GHI JKL MNO PQR STU VWX YZ
,並返回ABC
nextLine()
:
考慮字符串:
ABC DEF GHI JKL
MNO PQR STU VWX
YZ
初始位置:
->ABC DEF GHI JKL
MNO PQR STU VWX
YZ
當你調用nextLine()
,將光標移動到下一行:
ABC DEF GHI JKL
->MNO PQR STU VWX
YZ
,並返回ABC DEF GHI JKL
。
我希望它有幫助。
+0
謝謝,我不知道例外情況! – Rohitha
相關問題
- 1. 使用掃描儀掃描Java輸入
- 2. 掃描儀不掃描我的輸入
- 3. 用掃描儀輸入
- 4. 通過,利用掃描儀輸入類
- 5. 這是使用掃描儀掃描多個輸入的方式
- 6. Java掃描儀使用舊輸入
- 7. 使用掃描儀輸入時出錯
- 8. 掃描儀輸入存儲和使用
- 9. java掃描儀輸入
- 10. 掃描儀輸入錯誤
- 11. 掃描儀輸入== null?
- 12. 掃描儀跳過輸入?
- 13. 循環掃描儀輸入
- 14. 掃描,掃描儀類
- 15. 使用掃描儀類
- 16. 加入使用掃描儀
- 17. 使用掃描儀導入
- 18. 掃描儀輸入新掃描儀(doc); <----------錯誤;預計
- 19. 用掃描儀檢查用戶輸入
- 20. 使用掃描儀的輸入來分配類
- 21. 使用掃描儀
- 22. 使用外部類處理條形碼掃描儀輸入?
- 23. 使用掃描儀類讀取輸入數據
- 24. 掃描儀類 - hasNextDouble()
- 25. PHP類掃描儀
- 26. 掃描儀類Java
- 27. 當使用掃描儀時輸入輸入時延遲
- 28. 無法完成掃描儀的輸入
- 29. 驗證Java中的掃描儀輸入
- 30. Java的掃描儀解析輸入
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html –