Java中Scanner的使用注意事项

关于java中Scanner的用法,我就不再重复。在此说一下使用需要注意的事项

先看实例代码:

import java.util.Scanner;

public class Main
{
public static void main(String[] args)
{
inAndOut();
}
public static void inAndOut()
{
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println("str:"+str);//输出字符串的内容
int num = scanner.nextInt();
System.out.println("num:"+num);//输出数字的内容
String newLine = scanner.nextLine();
System.out.println("newLine:"+newLine);//输出新行内容
System.out.println("newLine==?\"\"====》"+newLine.equals(""));//比较一下是不是为空串
}

}

看结果(绿色为输入,黑色是输出)


字符串
str:字符串
123
num:123
newLine:
newLine==?""====》true


注意,原本计划在输入123敲回车之后再输入内容的,但是123输完回车一敲,程序运行结束了。

我的天哪,这么神奇吗?难道scanner.nextLine()为空串吗?

等等,我们换一种方式输入,我们将所有内容输在一行:


字符串 123 字符串啊!!!!!!!!!
str:字符串
num:123
newLine: 字符串啊!!!!!!!!!
newLine==?""====》false

(貌似这种情况下才是我想要的真爱。)

再换一种输入呢?我把头两个放在一行,数字后面的单独作为一行试试。

当我输入123,按回车后,结果就出来了。。。。。。。。。我还没来得及输最后的一行啊。。。。!!!


字符串 123
str:字符串
num:123
newLine:
newLine==?""====》true


三种方式,两种是在输入数字后按回车,就直接出结果了,而且紧接着的scanner.nextLine()为空串。还有一种是输入数字123加上空格,后面跟内容,这种方式,可以正确赋值给我的变量。

好像譬如nextInt(), nextDouble(),nextXXX() 这些方法只能读取指定格式的内容,甚至在行末,读完之后,它不会自动换行(即使是在行末),所以每次123读完之后的nextLine()都是空串。。。。。。但是我们用nextLine()的时候它就不会,它会整行一起读完,没错,就是这样的。反正我是信了的。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值