我从我过去的经验中了解到的是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. 扫描仪不扫描我的输入
- 2. 用扫描仪输入
- 3. 通过,利用扫描仪输入类
- 4. 这是使用扫描仪扫描多个输入的方式
- 5. Java扫描仪使用旧输入
- 6. 扫描仪输入== null?
- 7. 循环扫描仪输入
- 8. java扫描仪输入
- 9. 使用扫描仪的输入来分配类
- 10. PHP类扫描仪
- 11. 扫描仪类 - hasNextDouble()
- 12. 扫描仪类Java
- 13. Java的扫描仪解析输入
- 14. 来自InputStream的扫描仪输入
- 15. 扫描仪内的扫描仪错误
- 16. 使用扫描仪类的问题
- 17. 使用扫描仪的Java
- 18. 从文件分隔扫描仪输入
- 19. Java输入,扫描仪和if语句
- 20. Java多行扫描仪输入
- 21. 无法输入扫描仪线
- 22. java扫描仪跳过最后输入
- 23. 扫描仪多输入问题
- 24. 扫描仪验证Java输入,
- 25. Java扫描仪输入字符串
- 26. 异常在扫描仪输入
- 27. 使用扫描仪类读取文件
- 28. 错误,同时使用扫描仪类
- 29. 扫描仪:如何在n个字符后限制扫描仪输入?
- 30. 从用户扫描仪类获取输入
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html –