今天来讲一讲什么是Scanner?Scanner又要怎么使用呢?

Scanner

什么是Scanner?


scanner是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。

由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。例如:

public class NextTest{  

    public static void main(String[] args) {  

        String s1,s2;  

        Scanner sc=new Scanner(System.in);  

        System.out.print("请输入第一个字符串:");  

        s1=sc.nextLine();  

        System.out.print("请输入第二个字符串:");  

        s2=sc.next();  

        System.out.println("输入的字符串是:"+s1+" "+s2);  

    }  

}

运行结果是:


Scanner的用法

  • 导入Scanner包
  • 使用Scanner监听键盘
  • Scanner输入语句

Scanner的导入

一般在首行代码处导入Scanner包,Scanner工具包是在Java文件夹util文件夹里面
那么怎么导入呢?
没错,和其他语言大同小异,用import 来导入,import在英语里面是入口、输入的意思,所以,导入的代码就是:


注意不要忘记后面的;号
扩展:为什么 import java.util.; 也可以呢?因为号在Java中表示所有的意思,所以 java.util.* 就是导入util文件夹里面的所有工具,那么Scanner自然在里面啦!

使用Scanner键盘监听

什么是键盘监听?
就是你输入一句话或者一个字母、数字,计算机可以接受你的信号或语句,然后做出反应。
那么,怎么监听呢?
首先得给Scanner定义一个空的赋值
就像这样Scanner x =
X是个命名,符合Java命名规范的都可以取,可以是a,b,c也可以自己取名字!
=号后面就是重点了?这里我先给出完整的语句!

Scanner x = new Scanner(System.in);

New是什么意思呢?Happy New year不陌生吧,他是新年快乐的意思?那么new呢,new就是的意思,可以这么理解,new Scanner就是新建一个Scanner监听
()里面的System.in是怎么来的呢?我们Java里面输出是不是用System.outout是出去、输出的意思,而Scanner是要让别人输入,那么刚好相反in就是里面、输入的意思,所以Scanner.in就是输入
整句代码就是这样:

Scanner x = new Scanner(System.in);

Scanner输入语句

那么到现在,就差一点了,差什么呢?
工具导入了,Scanner建立了,就差一个让别人输入的语句啊?你必须让计算机接收他保存他啊!
怎么保存?当然是赋值啊?赋什么值呢?Int double String都可以啊!
就先来个int吧!前面一样,int s =
S我就不多说了,自定义变量名,随你取名字!
前面好了,那后面呢?后面就需要用你的Scanner监听了!
定义的Scanner叫什么名字呢?我们看看语句啊!

Scanner x = new Scanner(System.in);

X就是Scanner名字啦!可以自己取,但必须符合命名规则!!!
然后,要知道Scanner赋值的规则是他的名字(我这里是X).next+类型+()
比如:

int s = x.nextInt();

这个括号里面不需要填写任何东西,他就是一个空的,等待键盘输入
这里就是将输入的值赋值给int变量S
这是int类型Scanner输入的语句
那如果是double类型或者String类型呢?
没错,跟int差不多,double格式就是:double+变量名 = Scanner名+nextDouble();
我这里写出来就是这样:

Double s = x.nextDouble();

重点来了
不要以为String的Scanner变量也一样,String写出了不同的是next后面不需要加任何东西
我这里写出了是这样:

String s = x.next();

或者这样:

String s = x.nextLine();

现在不必要管这两个有什么区别,先记住就行!

下次文章更新在解说这来个的不同!

这里先放个分析图,可以看看
Scanner1.png

提示:博客左侧栏目CSDN主页也有文章哦!

最后修改:2021 年 09 月 08 日 06 : 04 PM
如果觉得我的文章对你有用,请随意赞赏