天天看点

JavaSE学习(9):常见类之Scanner详解

1.概述

    用于键盘输入数据。

用法:A:导包

           B:创建对象

           C:调用方法

System类下有一个静态的字段:

public static final InputStream in;//标准的数据流,对应键盘的录入

InputStream is=System.in

所以Scanner sc =new Scanner(System.in);

中调用了构造方法:scanner(InputStream sourse
           

标准的数据流是无论你输入什么,都直接输入字符串,不会判断类型,但是经过system.In的包装之后,可以判断出输入的数据类型

2.成员方法

基本格式:

hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是int,Double等。如果需要判断是否包含下一个字符串,则可以省略

nextXxx()获取下一个输入项。Xxx的含义和上个方法的Xxx相同

默认情况下,Scanner使用空格,回车等作为分隔符

常用方法:

public int nextInt()   :获取一个int类型的数据

public String nextLine():获取一个String类型的数据

有个小问题:

先获取一个整形数值,在获取一个字符串,会出现问题

主要原因:就是那个换行符号的问题

如何解决呢?

A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串

int a=sc.nextInt();
Scanner sc2=new Scanner(System.in);
String s=sc2.nextLine();
           

B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换成什么。