黑马程序员技术交流社区
标题:
Scanner类中一个bug,大神才能解释
[打印本页]
作者:
刘永川
时间:
2016-9-9 01:06
标题:
Scanner类中一个bug,大神才能解释
今天做程序的时候,编译没有错误,运行的时候出错了,自己研究了一下,发现了一个问题
Scanner sc = new Scanner(System.in);
double b = sc.nextDouble();
string s = sc.nextLine();
运行时,输入一个double值就会出现异常,但我发现把sc.nextLine 改成 sc.next()就不出异常,基础班,不明白是咋回事,求解!
作者:
Fate_stay
时间:
2016-9-9 01:12
nextLine() 方法,是接收回车前第一个字符串,结合你的代码看看吧
作者:
Frankle
时间:
2016-9-9 15:31
sc.nextLine()接收了回车键
作者:
LShu
时间:
2016-9-9 22:02
string s = sc.nextLine(); 接收了回车键,你可以再创建一个新的键盘录入对象就可以解决了或者把double类型的数据也用 String 类型的接收,再使用 double d = Double.parseDouble(line); 把他转变为double类型的也可以解决
作者:
wosika
时间:
2016-9-9 22:04
看了大神们的回答受益匪浅
作者:
kangnam
时间:
2016-9-9 22:17
多创建一个键盘录入对象就可以了解决了, 因为NextLine()会接受换行 。 你可以试试反过来也行
作者:
lipeng518
时间:
2016-9-9 22:26
估计只能通过新建一个随机对象解决 ,nextline默认接受回车键的
作者:
&天马星空ぁ
时间:
2016-9-10 01:58
double b = sc.nextDouble();
//在中间加一个回车回收
sc.nextLine();
string s = sc.nextLine();
作者:
Array先生
时间:
2016-9-10 06:07
sc.nextLine()接收了回车键,你把 double b = sc.Double();和String s= sc.nextLine();交换下位置试试
作者:
存少
时间:
2016-9-10 09:40
回车键被接收了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2