如何使用 Java 中的 Scanner 类读取单个字符?
java 8object oriented programmingprogramming
从 Java 1.5 开始引入了 Scanner 类。该类接受 File、InputStream、Path 和 String 对象,并使用正则表达式逐个标记读取所有原始数据类型和字符串(来自给定源)。默认情况下,空格被视为分隔符(用于将数据拆分为标记)。
使用 Scanner 类读取字符
Scanner 类提供了 nextXXX() 方法(其中 xxx 为 int、float、boolean 等),可用于读取各种原始数据类型。但它从未提供读取单个字符的方法。
但是,您仍然可以使用此类读取单个字符。
- Scanner 类的 next() 方法以字符串格式返回源的下一个标记。这将读取单个字符(以分隔符分隔)作为字符串。
String str = sc.next();
- String 类的 toCharArray() 方法将当前字符串转换为字符数组。
char ch[] = str.toCharArray()
- 从数组中获取存储在第 0 个位置的字符。
char myChar = ch[0];
示例
以下示例使用 Scanner 类从用户读取单个字符。
import java.util.Scanner; public class ContentsOfFile { public static void main(String args[]) throws Exception { //创建 Scanner 对象 Scanner sc = new Scanner(System.in); //创建 StringBuffer 对象 System.out.println("Enter your grade: (A, B, C, D)"); char grade = sc.next().toCharArray()[0]; if(grade == 'A'){ System.out.println("You are very good, you have been promoted"); }else if(grade=='B'){ System.out.println("You are good, you have been promoted"); }else if(grade=='C'){ System.out.println("You are average, you have been " + "promoted, you need to work hard"); }else if(grade=='D'){ System.out.println("You are not promoted, try again"); }else { System.out.println("Improper input"); } } }
输出
Enter your grade: (A, B, C, D) C You are average, you have been promoted, you need to work hard