如何混合使用nextInt(),nextDouble(),nextLine()方法

关于next(),nextLine()的区别:

next()从遇到第一个有效字符(非空格、换行符)开始扫描,遇到第一个分隔符或结束符(空格’ ‘或者换行符 ‘\n’)时结束。

举个例子:

Scanner sc = new Scanner(System.in);
//从键盘中输入的是hello world! 
String str_1 = sc.next(); 
String str_2 = sc.nextLine(); 
System.out.println(str_1); 
System.out.println(str_2);

运行上述代码,控制台操作如下:
在这里插入图片描述
我们发现next()方法,遇到空格符停止读取,因此留下空格加world!字符串,即" world!"
而nextLine()方法从空格开始读取,遇到换行符结束。所以保存在str_2里的是" world!"(world前有一个空格别忽略)。

下面来说说如何混合使用nextInt(),nextDouble(),nextLine()方法
直接上代码:

Scanner sc = new Scanner(System.in);
	    /*从键盘中输入的是:
	     * 12
	     * 0.96
	     * helloworld*/
		int a=sc.nextInt();
        double b=sc.nextDouble();
        sc.nextLine();//为了清除掉0.96后面的换行符
        
        String s= sc.nextLine();
        
        System.out.println("Int:"+a);
        System.out.println("Double:"+b);
        System.out.println("String:"+s);

输出为:

12
0.96
helloworld
Int: 12
Double: 0.96
String: helloworld

此时输入电脑缓存中的数据格式为:
“ 12\n0.96\nhelloworld\n”
nextInt()方法,读取了整型数据12,还剩下"\n0.96\nhelloworld\n"
nextDouble()方法,读取了双浮点型数据0.96,还剩下"\nhelloworld\n"
如果此时直接用nextLine()读取,该函数遇到换行符\n就结束,即后面的"helloworld\n"将不会被读取。
所以需要在这之前输入nextLine(),去掉缓冲区的\n,然后再读取
因为nextLine()会读取\n之前的所有内容,并去除\n,而nextDouble()等不会去除它后面的\n

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值