目录
1. 什么是Scanner类
2. 创建Scanner类的基本语法
3. 使用next方法
4. 使用nextLine方法
5. next( )与nextLine( )
6. 数据类型的接收方式
7. Scanner类知识扩展
8. 今日箴言
1. 什么是Scanner类
Scanner类是Java中的扫描器,也就是扫描用户在控制台的输入。java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
2. 创建Scanner类的基本语法
Scanner sc = new Scanner(System.in);
通过语法创建Scanner类,还要通过Scanner类的next( )与nextLine( )方法获取输入的字符串,在读取前我们一般需要使用hasNext与hasNextLine判断是否还有输入的数据。
3. 使用next方法
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
4. 使用nextLine方法
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scan.hasNextLine()) {
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
}
scan.close();
}
5. next( )与nextLine( )
next( )
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
nextLine( )
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
6. 数据类型的接收方式
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入姓名");
String name = sc.next();
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("请输入性别");
char gender = sc.next().charAt(0);
System.out.println("请输入身高");
double height = sc.nextDouble();
System.out.println("姓名为" + '\t' + name);
System.out.println("年龄为" + '\t' + age);
System.out.println("性别为" + '\t' + gender);
System.out.println("身高为" + '\t' + height);
}
}
- int类型:.nextInt( )
- double类型:.nextDouble( )
- 字符串类型:.next( )或 .nextLine( )
- char类型:.next( ).charAt(0)
7. Scanner类知识扩展
Scanner不仅可以从输入流中读取,也能从文件中读取。以下案例从一个名为 test.txt 的文件中读取整数。
test.txt 文件内容:
1
2
3
4
5
读取文件内容:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Fileio {
public static void main(String[] args) throws FileNotFoundException {
int[] arr=new int[10];
int i=0;
Scanner sc=new Scanner(new File("test.txt"));
while(sc.hasNextInt()) {
arr[i]=sc.nextInt();
i++;
}
sc.close();
System.out.printf("读取了 %d 个数\n",i);
for(int j=0;j<i;j++) {
System.out.println(arr[j]);
}
}
}
输出结果:
读取了 5 个数
1
2
3
4
5
8. 今日箴言
生命可以随心所欲,但不能随波逐流。
——许愿 . 共勉