深度学习Java系列——nextLine方法与next()方法

前言:

我是张哲,一位在互联网上不愿透露姓名的小学员,接下来大家看到的所有内容都是我背写的知识点,这里的知识点和你所学习到的不同,我中和了我的一些书籍和网上刷的面试笔记,相信这里能让你接触到更深入的知识点,我会慢慢的把我对某个知识点的理解写进去。

首先抛出一个问题:你真的学透Scanner类的常用方法了吗?
Scanner input=new Scanner(System.in)
int num=input.nextInt();
String str=input.nextLine();
System.out.println("num是:"+num);
System.out.println("str是:"+str);
//控制台中输入123,然后回车结果为:
num是:123
str是:
控制台原图如下

Scanner input=new Scanner(System.in);
String str=input.next();
System.out.println(str);
//控制台中输入张哲 123,然后回车结果为:
张哲

控制台原图如下

如果以上两种控制台结果你都没猜到,没关系好好看我接下来的内容。

next()方法的使用

这个方法是我们常用的,它接收的值是回车符和空格符号、Tab制表符之前的数值,但是这里分情况,如果制表符和空格之前没有数据,则会选择制表符和空格符之后的数据。如图所示:

在这里插入图片描述
下一种情况是如果回车符号前面没有数据,则继续扫描数据,如图所示:
深度学习Java系列——nextLine方法与next()方法_第1张图片

nextLine()方法的使用

可以识别空格和制表符的数据,一旦回车必定读取,哪怕回车前无数据。如图所示:

常见问题及解决方案:
Scanner input=new Scanner(System.in);		
System.out.println("请输入数字:");
int num=input.nextInt();
System.out.println("num为:"+num);
System.out.println("请输入字符串:");
String str=input.nextLine();
System.out.println("str为:"+str);
//控制台原图如下

深度学习Java系列——nextLine方法与next()方法_第2张图片
原因是nextInt()方法读取到回车前的数据,而nextLine()方法遇到回车就停读

解决方案如下:
Scanner input=new Scanner(System.in);		
System.out.println("请输入数字:");
int num=input.nextInt();
System.out.println("num为:"+num);
input.nextLine();
System.out.println("请输入字符串:");
String str=input.nextLine();
System.out.println("str为:"+str);

深度学习Java系列——nextLine方法与next()方法_第3张图片
在最后总结下基本数据类型所对应的Scanner对象方法返回值类型有:
nextByte()、 nextInt()、 nextShort()、 nextLong()、
nextFloat()、 nextDouble()、 nextBoolean()
就是没有char所对应的返回值类型。
解决方法如下:
char jie=input.next().charAt(0);

你学到了吗?

最后再说一个知识点:

switch在JDK1.7之后可以存放几个数据类型?

你的回答可能是六个,但其实是十个
byte、 int、 short、 char、 枚举enum、 String、 Byte、 Integer、 Short、 Character

你可能感兴趣的:(java)