我从我过去的经验中了解到的是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 –