前言
计算机的发明,伴随着人与机器的互动,用户输入数据,机器接收数据,再根据程序员的代码指令,对数据进行操作,反馈给用户。Scanner类,实现了用户向计算机输入数据,被计算机获取到数据的功能。
一、java中的Scanner类是什么?
Scanner类,使计算机可以获取到用户的输入内容。最简单的例子,用户在网站上输入账号、密码,计算机获取到数据,进行判断后登录账号,判断之前的行为,都是通过Scanner类实现。(java5添加的新功能)
二、使用方法
首先,导包,Scanner类,在java类库中的util包中
import java.util.Scanner;
其次,创建Scanner对象,打开输入流,使计算机能获取到用户输入的数据
Scanner scan=new Scanner(System.in);
1.next()和nextXxx()方法
next()方法:获取用户输入的字符串
import java.util.Scanner; public class Demo{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); //开始获取键盘输入的内容 String str1=sc.next(); //next()方式获取字符串内容 System.out.println("输入的数据为:"+str1); sc.close(); //关闭获取键盘输入内容的指令 } }
输入字符串:I love you
输出结果:I
nextXxx()方法:获取用户对应类型的输入数据
nextLine()方法:获取用户输入的字符串
import java.util.Scanner; public class Demo{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); //开始获取键盘输入的内容 String str2=sc.nextLine(); //nextLine()方式获取字符串内容 System.out.println("输入的数据为:"+str2); sc.close(); //关闭获取键盘输入内容的指令 } }
输入字符串:I love you
输出结果:I love you
如上,每种数据类型,都有对应的nextXxx()方法,像上面那样使用
数据类型 | nextXxx()方法 |
int | nextInt(); |
short | nextShort(); |
long | nextLong(); |
byte | nextByte(); |
float | nextFloat(); |
double | nextDouble(); |
boolean | nextBoolean(); |
char | nextChar(); |
BigDecimal | nextBigDecimal(); |
BigInteger | nextBigInteger(); |
next()方法与nextLine()方法的区别 (同为获取字符串的方法)
next()方法:
(1)获取到有效字符之后的空格,做为结束符
(2)获取到有效字符之前的空格,自动舍去
(3)无法得到带有空格的字符串
nextLine()方法:
(1)获取在按下Enter键之前的所有内容
(2)可以获得空白
2.hasNext()和hasNextXxx()方法
hasNext()方法:判断用户是否有输入的字符串。有输入,返回true值;无输入,返回false值
if(scan.hasNext()){ String str1=scan.next(); System.out.println("输入的数据为:"+str1); //有获取到输入的相关内容,则运行代码 }
hasNextXxx()方法:判断用户是否有输入某种类型的数据。与hasNext()方法原理一致
if(scan.hasNextLine()){ String str2=scan.nextLine(); System.out.println("输入的数据为:"+str2); //有获取到输入的相关内容,则运行代码 }
如上, 每种数据类型,都有对应的hasNextLine()方法,向上面一样使用
数据类型 | hasNextXxx()方法 |
int | hasNextInt(); |
long | hasNextLong(); |
byte | hasNextByte(); |
short | hasNextShort(); |
float | hasNextFloat(); |
double | hasNextDouble(); |
char | hasNextChar(); |
BigInteger | hasNextBigInteger(); |
BigDecimal | hasNextBigDecimal(); |
boolean | hasNextBoolean(); |
3.close()方法
close()方法:关闭扫器描,关闭输入流,节省运行内存
对应着Scanner scan=new Scanner(System.in); 打开扫描器,打开输入流
总结
以上就是java的Scanner类大部分的方法,其他的Scanner类中的方法还有,useRadix(),useDelimiter(),uselocale(),findInLine()等,Scanner类提供了大量能使我们快速便捷地输入数据的方法。