前言:
我是张哲,一位在互联网上不愿透露姓名的小学员,接下来大家看到的所有内容都是我背写的知识点,这里的知识点和你所学习到的不同,我中和了我的一些书籍和网上刷的面试笔记,相信这里能让你接触到更深入的知识点,我会慢慢的把我对某个知识点的理解写进去。
首先抛出一个问题:你真的学透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制表符之前的数值,但是这里分情况,如果制表符和空格之前没有数据,则会选择制表符和空格符之后的数据。如图所示:
下一种情况是如果回车符号前面没有数据,则继续扫描数据,如图所示:
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);
//控制台原图如下
原因是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);
在最后总结下基本数据类型所对应的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