Scanner
一、Scanner作用
Java基本语法中并没有实现程序和人的交互,但是Java给我们提供了一个工具类,java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。作用与控制台的输入输出与C里的scanf类似。
//导入包
import java.util.Scanner;
//或者导入整个工具类
import java.util.*;
二、Scanner的用法
1、构造一个Scanner 类的对象,并且与标准输入流Sytem.in关联。
基本语法为:
Scanner s = new Scanner (System.in)
//创建了一个Scanner对象,Scanner为类名,s为对象名。
2、创建一个变量,使用相关方法从控制台获取你需要的输入数据。
控制台也叫命令行
当你使用scanner方法后控制台会等待你输入数据,敲回车键结束一个数据的输入。
根据输入的数据类型不同,也需要调用不同的方法,具体应用如下:
String str = s.nextLine();
String str = s.next();
byte a1= s.nextByte();
short a2= s.nextShort();
int a3 = s.nextInt();
long a4 = s.nextLong();
float a5 = s.nextFloat();
double a6 = s.nextDouble();
boolean a7 = s.nextBoolean();
3、关闭Scanner类----close()
使用完Scanner后,我们一定要记得将它关闭!
因为使用Scanner本质上是打开了一个IO流,如果不关闭的话,它将会一直占用系统资源。
注意!一旦关闭后,就算在s.close()这行代码后再重新new Scanner(System.in),那也不能重新再打开一个扫描器了,如下图会发现程序会报错
所以一定要在用不到扫描器之后再关闭,即把s.close()代码放到最后。
三、常用的方法详解
1.nextLine()
可以扫描到一行内容(当前行,光标所在行的内容,包括空格、回车),并将输入作为一个字符串而被获取到。
2.区分nextLine()与next()
next()获得有效字符串后遇到的第一个空格就会结束读取。
比如,输入hello world.最终的输出结果为hello。
3.nextInt()
nextInt()只读取数值,读取完之后不会再读取,并且光标放在本行。
注意:nextInt无法读取小数,否则会报错。
每次可以只输入一个数字,回车确认,一个数字只能被一个nextInt读取。
也可以输入一组数字,例如:“78 484 44”,每个数字之间用空格(一个或多个空格)隔开,可被多个nextInt()读取,空格及回车不会被读取。
nextDouble()的用法同理nextInt()。
四、应用
/**
* ClassName: test
* Package: PACKAGE_NAME
* Description:
*
* @Author smy
* @Create 2023/8/13 17:18
* @Version 1.0
*/
import java.util.*;
import java.lang.*;
public class test {
public static void main(String[] args){
System.out.println("请输入:");
Scanner s = new Scanner(System.in);
String testString = s.nextLine();
System.out.println(testString);
}
}