A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天做程序的时候,编译没有错误,运行的时候出错了,自己研究了一下,发现了一个问题
Scanner sc = new Scanner(System.in);
double b = sc.nextDouble();
string s = sc.nextLine();
运行时,输入一个double值就会出现异常,但我发现把sc.nextLine   改成  sc.next()就不出异常,基础班,不明白是咋回事,求解!

9 个回复

倒序浏览
nextLine() 方法,是接收回车前第一个字符串,结合你的代码看看吧
回复 使用道具 举报
sc.nextLine()接收了回车键
回复 使用道具 举报
string s = sc.nextLine(); 接收了回车键,你可以再创建一个新的键盘录入对象就可以解决了或者把double类型的数据也用 String 类型的接收,再使用 double d = Double.parseDouble(line); 把他转变为double类型的也可以解决
回复 使用道具 举报
看了大神们的回答受益匪浅
回复 使用道具 举报
多创建一个键盘录入对象就可以了解决了, 因为NextLine()会接受换行 。  你可以试试反过来也行
回复 使用道具 举报
估计只能通过新建一个随机对象解决 ,nextline默认接受回车键的
回复 使用道具 举报
double b = sc.nextDouble();
//在中间加一个回车回收
sc.nextLine();
string s = sc.nextLine();
回复 使用道具 举报
sc.nextLine()接收了回车键,你把 double b = sc.Double();和String s= sc.nextLine();交换下位置试试
回复 使用道具 举报
回车键被接收了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马