一、什么是 Java Scanner 类? Java Scanner 类是 Java 中一个用于读取用户输入的类,它可以从标准输入、文件、字符串等多种输入源中读取数据,并将数据转换为 Java 中的各种数据类型。 二、引用数据类型 我们要学的Scanner类是属于引用数据类型,先了解下引用数据类型。 1、引用数据类型的定义 引用数据类型与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有相对固定的步骤或格式: 数据类型 变量名 = new 数据类型(); Scanner input = new Scanner(System.in); 每种引用数据类型都有其功能,可以调用该类型实例的功能。 变量名.方法名(); 三、Scanner 类有哪些常用方法? 先导入java.util包,语法:import java.util.Scanner; 第一步 创建从控制台输入对象 第二步 提示语句 第三步 接受控制台的变量 第四步 输出或使用 import java.util.Scanner; public class Text { public static void main Java Scanner 类是Java标准库提供的一种输入处理类,主要用于从各种输入源(如键盘、文件、字符串等)读取用户输入的数据。它属于Java中的引用数据类型,这意味着使用Scanner类时,我们需要创建Scanner对象并调用其方法来读取和处理输入。 1. 引用数据类型: 引用数据类型不同于Java的基本数据类型(如int、char等),它包括类、接口和数组。在Java中,引用数据类型的变量实际上存储的是对象的引用(地址),而不是对象本身。例如,创建Scanner对象时,我们使用`Scanner input = new Scanner(System.in);`,这里的`input`就是一个Scanner类型的引用,指向了一个Scanner对象。 2. Scanner类常用方法: - `hasNext()`:检查输入流中是否有更多的数据可读。如果还有数据,返回true,否则返回false。 - `nextInt()`:从输入流中读取一个整数。 - `nextDouble()`:从输入流中读取一个双精度浮点数。 - `next()`:读取输入流中的下一个Token(分隔符间的字符序列),通常用来读取单词或者非空白字符。 - `nextLine()`:读取输入流直至遇到换行符('\n')或EOF,返回从当前位置到换行符之间的所有字符。 3. `next()`与`nextLine()`的区别: - `next()`:只读取到第一个空格前的字符,不会读取空格,且自动跳过前导空格。 - `nextLine()`:读取到回车符或换行符为止,包括空格,可以获取包含空格的字符串。 4. 使用`next()`方法的例子: ```java Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String line = scanner.nextLine(); System.out.println("输入的内容是:" + line); } ``` 这段代码会持续读取用户的输入,直到没有更多输入为止,每次读取一行(包含空格)。 5. 使用`nextLine()`方法: 当需要读取包含空格的字符串时,通常会使用`nextLine()`。例如,读取用户输入的完整句子: ```java Scanner scanner = new Scanner(System.in); System.out.println("请输入一句话:"); String sentence = scanner.nextLine(); System.out.println("您输入的是: " + sentence); ``` 6. 示例代码: 下面是一个完整的示例,展示了如何使用Scanner类从用户那里获取年龄、体重、姓名和性别: ```java import java.util.Scanner; public class ScannerExample { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入你的年龄"); int age = input.nextInt(); System.out.println("请输入你的体重"); double weight = input.nextDouble(); System.out.println("请输入你的姓名"); String name = input.nextLine(); // 注意这里,nextInt()或nextDouble()后需要使用nextLine()来清除换行符 System.out.println("请输入你的性别"); char sex = input.next().charAt(0); System.out.println("您的信息是:年龄 " + age + ", 体重 " + weight + ", 姓名 " + name + ", 性别 " + sex); } } ``` 在这个例子中,`nextInt()`和`nextDouble()`分别用于读取整数和浮点数,而`nextLine()`用于读取字符串。注意,在使用`nextInt()`或`nextDouble()`后,如果紧接着要读取一个字符串,需要先调用`nextLine()`来清除缓冲区中的换行符,否则第一次调用`nextLine()`只会读取到空行。
- 粉丝: 4w+
- 资源: 118
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助