Java的Scanner类

1、作用:用来获取用户的键盘输入(需要导入:import java.util.Scanner;)

2、方法:

(1)判断是否还有数据:
  • hasNext():判断是否含有下一个字符串
  • hasNextXxx():其中Xxx可以是int、long等代表基本数据类型的字符串
  • hasNextLine():判断输入中是否还有下一行
(2)获取下一个数据:
  • next():返回输入中下一个字符串
  • nextXxx():返回输入中下一个类型为Xxx的数据
  • nextLine():返回输入中下一行字符串
(3)设置分隔符:useDelimiter(String pattern):不设置,默认分隔符是空白
//字符串
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		//字符串
		while(sc.hasNext()) {
			System.out.println("输入的数据是:"+sc.next());
		}
	}
}
//int型数据
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextInt()) {
			System.out.println("输入的数据是:"+sc.next());
		}
	}
}
//一整行
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextLine()) {
			System.out.println("输入的数据是:"+sc.nextLine());
		}
	}
}

上面三个程序之间的区别在于:

(1)①与②相比,①可以输入任何数据,如字符串、基本类型数据、中文等等;而②只能输入int型数据,如果哪一次输入的不是int型数据,则该程序自动结束,无法再输入数据

(2)①与③相比,①每次遇到空格键,默认是一组数据,当同一行输入的数据中,包含一个空格,那么①自动将其当成两个数据输出,但是③当成一个数据。

运行上述三个代码,得到结果如下:
在这里插入图片描述

import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		//修改默认的空格分隔符,改为换行才是分隔符
		sc.useDelimiter("\n");
		while(sc.hasNext()) {
			System.out.println("输入的数据是:"+sc.next());
		}
	}
}

运行结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQj8wCnZ-1590974327932)(C:\Users\24973\Desktop\笔记\绘图\Scanner类\2)]

此时不再使用空格作为分隔符,而是遇到换行才表示是一个数据。

3、使用Scanner获取文件输入:使用File对象作为Scanner对象的输入参数
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) throws FileNotFoundException{
        //使用File类新建File对象作为Scanner对象的参数
		Scanner sc=new Scanner(new File("D:\\eclipse\\study_again\\ScannerFile.java"));  //传入完整的位置
		while(sc.hasNextLine()) {
			System.out.println("输入的数据是:"+sc.nextLine());
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章