在java5中新增加了一个新的Scanner类,用来获取用户从键盘输入的数据
Scanner类被包含在被称为“实用类”的java.util包中
所以想要在调用Scanner类时,需要调用import java.util.scanner类
代码如下:
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
//首先创建一个Scanner类对象,等号后面要以new开头 并且与标准输入流System.in相连
Scanner sc=new Scanner(System.in);
//创建完对象后就可以使用下面的方法了
}
常用方法:
1、next()方法:获取用户从键盘上输入的字符串
执行原理:遇到第一个扫描有效字符,即第一个非空格非换行符后面开始,一直获取到下一个空格或换行符之前的那一个字符
//创建完对象后就可以从键盘输入中获取你所需要的输入数据
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
//首先创建一个Scanner类对象,等号后面要以new开头 并且与标准输入流System.in相连
Scanner sc=new Scanner(System.in);
//从键盘接收数据
//创建完对象后就可以从键盘输入中获取你所需要的输入数据
System.out.println("next方式接收:");
//判断是否还有输入
if (sc.hasNext()){
String str1=sc.next();
System.out.println("输入的数据为:"+str1);
//sc.close(); //关闭该scanner
}
2、nextLine()方法:也是可以获取用户输入的数据 但它与next()方法有不同点
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
Scanner sc=new Scanner(System.in);
System.out.println("nextLine方式接收:");
//判断是否有输入
if (sc.hasNextLine()){
String str2=sc.nextLine();
System.out.println("接收的数据为:"+str2);
}
在分别使用next()和nextLine()方法时,如果用户输入的值中有空格,则next()方法只会输出从第一个字符开始到空格前的最后一个字符
而nextLine()方法则会将空格后的数据跟着输出出来,中间原本是啥样,控制台显示出来的还是啥样
对比next()方法和nextLine方法的不同点:
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串,读两个由空格或符号隔开
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空格
3、nextInt()方法:只能获取整数类型的数据
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
Scanner sc=new Scanner(System.in);
System.out.println("nextInt方式接收整数数字:");
int a=sc.nextInt();
System.out.println("变量a的数值为:"+a);
}
nextInt方法可以输入一组数字 如 147 258 369(每个数字间用一个或多个空格隔开),可被多个nextInt()方法读取,中间的空格不会被读取
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
Scanner sc=new Scanner(System.in);
System.out.println("可以输入多组数字(中间用空格隔开):");
int b=sc.nextInt();
int c=sc.nextInt();
int d=sc.nextInt();
System.out.println("上面的数值分别为:"+b+" "+c+" "+d);
}
4、nextDouble()方法:使用方法同理nextInt() 但是它可以读取小数
package demo;
import java.util.Scanner;
public class scanner扫描类 {
public static void main(String arg[]){
Scanner sc=new Scanner(System.in);
System.out.println("nextDouble()方法可以接收小数:");
double m=sc.nextDouble();
System.out.println(m);
}
通过上面的nextInt和nextDouble可以输入多个数字,并且计算比如平均值或总数的相关问题
附图:详细的nextxxx和hasnextxxx方法(转自Java Scanner类的常用方法及用法(很详细)_规则固态长方体物质空间移动工程师的博客-CSDN博客_java scanner)