求解一个java Scanner问题。

Exceptioninthread"main"java.lang.IllegalStateException:Scannerclosedatjava.util.Scann... Exception in thread "main" java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Scanner.java:1115)
at java.util.Scanner.next(Scanner.java:1403)
at word.guess(word.java:62)
at HangmanCL.main(HangmanCL.java:13)

scanner 之后要是不写scanner.close();程序运行没问题。
但加了之后就会就会出现上面的报错
求教!!!
展开
 我来答
庭千叶随1Ie64
2013-05-20
知道答主
回答量:19
采纳率:0%
帮助的人:12万
展开全部
你在一段代码里面先开启了Scanner,用完之后close了。然后你又要用到Scanner,但是这时候你的Scanner已经关闭了。所以才会报出上面的错误,你可以再你第二次用Scanner之前再new一次Scanner就可以了
志明与数据
2013-05-20 · TA获得超过348个赞
知道答主
回答量:140
采纳率:0%
帮助的人:28.3万
展开全部
Scanner closed.
Scanner已经关闭了,你要是再next(),肯定抛异常了。

这好比我是保安,你需要进大门,我给你开门了,你站那不动,我又把门关上了,你以为我开了一次就可以进去,然后你撞门上了(报错了)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戢初昳0ig0055
推荐于2017-10-13 · TA获得超过566个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:153万
展开全部
//正确的写法
java.util.Scanner sc = new java.util.Scanner(System.in);
String str = sc.next(); //接受用户输入的字符串
sc.close();//进行关闭操作。。
System.out.println(str);

//错误的写法
java.util.Scanner sc = new java.util.Scanner(System.in);
sc.close();//进行关闭操作。。(如果把close()放到sc.next()的下面,那么就会报错)。
String str = sc.next(); //接受用户输入的字符串
System.out.println(str);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式