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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int a = sc.nextInt();
        System.out.println("请输入任意字符串:");
        String str = sc.nextLine();
        System.out.println(a+"----"+str);


为什么输出结果,,,,,,,
请输入一个整数:
10
请输入任意字符串:
10----

当我键盘敲入10后,就结束了,为什么。。。。。。。

37 个回复

倒序浏览
这个地方,String str = sc.nextLine()  录入的是回车,你可以选择用sc.next()或者是重新创建对象再调用!
回复 使用道具 举报
楼上说的很对,我运行了一下,没问题了.
[Java] 纯文本查看 复制代码
import java.util.Scanner;
class str {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int a = sc.nextInt();
        System.out.println("请输入任意字符串:");
        String str = sc.next();
        System.out.println(a+"----"+str);
		
	}
}



回复 使用道具 举报
nextInt()是键盘录入整数的方法,当我们录入10的时候
                 * 其实在键盘上录入的是10和\r\n,nextInt()方法只获取10就结束了
                 * nextLine()是键盘录入字符串的方法,可以接收任意类型 ,通过\r\n,只要遇到\r\n就证明一行结束
       
回复 使用道具 举报
因为这个时候,你的回车键,就是“\r\n”就是下一行的输入语句。就是str = “\r\n”
回复 使用道具 举报
mawenliang 发表于 2016-9-15 11:00
这个地方,String str = sc.nextLine()  录入的是回车,你可以选择用sc.next()或者是重新创建对象再调用! ...

恩恩,长知识了
回复 使用道具 举报
zzdhm 发表于 2016-9-15 19:13
nextInt()是键盘录入整数的方法,当我们录入10的时候
                 * 其实在键盘上录入的是10和\r\n,nextInt()方法只 ...

我输入的只是10,但随后我又敲回车了,当回车符\r\n被nextline()接收,就停止接收录入信息了,因此啥都没接收到就往下执行了,我觉得是这样,不知道对不对
回复 使用道具 举报
huangbinqqian 发表于 2016-9-15 19:15
因为这个时候,你的回车键,就是“\r\n”就是下一行的输入语句。就是str = “\r\n” ...

我输入的只是10,但随后我又敲回车了,当回车符\r\n被nextline()接收,就停止接收录入信息了,因此啥都没接收到就往下执行了,我觉得是这样,不知道对不对,应该是啥都没接收吧,要不然不得能打印出\r\n,但实际上啥都没打印
回复 使用道具 举报
涨姿势了!!!
回复 使用道具 举报
这也是学习了,不过实际开发肯定不会这么用吧,学习的时候能推敲推敲
回复 使用道具 举报
Scanner录入字符串的方法不是直接next()么,才学到面向对象,后面不太了解,现在就知道录入字符串用这个方法,nextline()方法还没用过
回复 使用道具 举报
疯狂的麦克斯 发表于 2016-9-16 00:27
我输入的只是10,但随后我又敲回车了,当回车符\r\n被nextline()接收,就停止接收录入信息了,因此啥都没 ...

恩恩,也可以这么理解吧,老实说,那个nextint,其实以后基本不会用到,都是用nextline,这个方法,之所以这样是因为,到后面的输入都是要String类型
回复 使用道具 举报
nextline的问题,尽量用next,这样就不会出现你那样的情况的.  我前天也出现这种情况,老师跟我说尽量不要用nextline
回复 使用道具 举报
最好用next(),不要用nextLine(),如果非要在nextInt下面用nextLine,就需要在前面再创建一个新的Scanner..
回复 使用道具 举报
看到大神们的回复,增长了好多知识。
回复 使用道具 举报
SunCowbee 发表于 2016-9-16 01:57
这也是学习了,不过实际开发肯定不会这么用吧,学习的时候能推敲推敲

。。。。是的是的
回复 使用道具 举报
459374998 发表于 2016-9-16 22:02
Scanner录入字符串的方法不是直接next()么,才学到面向对象,后面不太了解,现在就知道录入字符串用这个方 ...

nextLine可以接收任意字符,包括空格,next()遇到空格就结束了
回复 使用道具 举报
小坏孩 发表于 2016-9-16 23:21
nextline的问题,尽量用next,这样就不会出现你那样的情况的.  我前天也出现这种情况,老师跟我说尽量不要用ne ...

完美
回复 使用道具 举报
nextLine( )接收空格和换行,所以就退出了
回复 使用道具 举报
因为enter回车键就是一个字符串,你用str接收了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马