java Scanner 输入

原创 2016年08月29日 15:49:18


要求,不断的输入一个整数,然后打印这个整数。下面给出代码

public class TestINput {
	public static void main(String[] args) {
		fun1();
		//fun2();
	}
	public static void fun1(){
		Scanner in = new Scanner(System.in);
		while(in.hasNextLine()){
			System.out.println(in.nextInt());
		}
	}
	public static void fun2(){
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			System.out.println(in.nextInt());
		}
	}
}
fun1()和fun2()都能实现这个功能,但是大家有没有发现不同。如果我们不断的输入,然后按ctrl+z结束输入,我们发现fun1()报错,错误如下:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at com.sunny.company.huaweiqj.TestINput.fun1(TestINput.java:13)
at com.sunny.company.huaweiqj.TestINput.main(TestINput.java:7)

假设我们输入数字 1 然后回车,那么此时输入缓存中为  1\n,注意\n为回车符,由于fun1用

while(in.hasNextLine()){} 来判断输入,那么当<pre name="code" class="html">in.nextInt() 读取了1后,此时缓存中还有\n,那么循环继续,下面就是<pre name="code" class="html">in.nextInt()这个语句,那么你按了ctrl+z,此时已经没有输入,所以会报错。
而fun2()用的是hasNext(),hasNext()判断\n返回的是false,所以fun2()没有报错


版权声明:本文为博主原创文章,未经博主允许不得转载。

java中类型的输入(Scanner)

Scanner input =new Scanner(System.in);
  • sinat_36183608
  • sinat_36183608
  • 2016年09月22日 17:01
  • 2215

Java Scanner输入两个数组

题目从命令行读入两个数组的长度和数组的值,其中第一行两个数na和nb代表aa和bb数组的长度代码import java.util.Scanner;public class Z { public ...
  • zjf1165
  • zjf1165
  • 2016年08月02日 16:11
  • 4133

Java Scanner(读取输入)

Scanner类 Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.。想要通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。 Sca...
  • yzh372685776
  • yzh372685776
  • 2016年07月20日 09:48
  • 6461

JAVA菜鸟入门篇 - 接受键盘输入Scanner、面向对象编程 (八)

1、接受键盘输入:    Scanner类的使用,需要加载 import java.util.Scanner包。     public static void main(String[] args...
  • promise_LOVE
  • promise_LOVE
  • 2015年01月05日 20:12
  • 1242

Java 控制台输入 Scanner

1,Java 中 获取 控制台输入(System.in)的方法,一般有两种: (1) BufferedReader scin=new BufferedReader(new InputStreamRe...
  • xy1131975903
  • xy1131975903
  • 2015年08月20日 11:07
  • 1920

Java中的Scanner类的用法以及其他获取键盘输入的方法

在Java5中新添加的java.util.Scanner类,是一个用于扫描输入文本的应用程序,可以结合使用正则表达式和从输入流中检索特定类型数据项的方法,而除了使用正则表达式,还可以对字符串和基本数据...
  • diankexiaoyuan
  • diankexiaoyuan
  • 2016年09月12日 10:49
  • 2767

Scanner类输入--Eclipse

  • 2008年09月25日 19:42
  • 2KB
  • 下载

java 键盘输入多种方法

一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。 实例程序: 1、利用 Scanner 实现从键盘读入i...
  • chang_xing
  • chang_xing
  • 2012年11月04日 09:58
  • 57153

java Scanner 输入

要求,不断的输入一个整数,然后打印这个整数。下面给出代码public class TestINput { public static void main(String[] args) { fun...
  • zhangpan19910604
  • zhangpan19910604
  • 2016年08月29日 15:49
  • 765

JAVA_简单获取用户输入并打印(Scanner scan = new Scanner(S))

import java.util.Scanner; public class 获取用户输入 { public static void main(String[] args){ Scann...
  • weixin_40709389
  • weixin_40709389
  • 2017年10月23日 14:58
  • 117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java Scanner 输入
举报原因:
原因补充:

(最多只允许输入30个字)