Java输入总结
Scanner常见的坑,使用nextLine之前一定要注意内存中是否有换行符
如何解决while(hasNext())一直循环
笔试常见输入
Scanner sc=new Scanner(System.in);
常用的几个方法:
sc.next();//
sc.nextInt();//
sc.nextLine();//
**next()😗*只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)。
**nextlnt()😗*只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。
**nextLine()😗*读取包括空格在内的所有字符,遇到回车键停止,并将光标移动到下一行。
sc.hasNext();//
sc.hasNextInt();//
sc.hasNextLine();//
笔试题遇到的输入:
在本地idea调试的时候如何解决while(hasNext())一直循环:
java开发文档这样解释:
public boolean hasNext()
如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
解决思路:
//例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
- next 不会接收回车符,tab 或者空格键,在接收有效数据之前会忽略这些符号,若已经读取了有效数据,遇到这些符号会直接退出
- nextLine 可以接收空格或者 tab 键,其输入以 enter 键结束