一、背景介绍
在 leetcode 上练习算法题时,题目要求输入一个浮点型数值以及一个字符。当我书写Scanner sc = new Scanner(System.in)后,打算通过sc.nextXX实现从控制台输入一个字符时,突然意识到原来Java语法中的Scanner类并没有直接定义读取 char 的方法。由于之前也并没有遇到过需要从控制台输入一个字符的需求场景,因此此时就对如何输入一个字符的问题绞劲脑汁,终于整理出了几种方法,实现从控制台输入字符。
二、控制台输入字符的3种方法
2.1 通过获取字符串间接获取字符
1、使用 Scanner 类 中的 next()/nextLine() 方法,获取到从控制台输入的字符串。
2、字符串就是由一个个的字符组成,因此此时可以通过charAt(0)的方法,获取到字符串里的首元素,即一个字符。此时就可以实现从控制台输入一个字符的需求了。
3、代码展示:
Scanner sc = new Scanner(System.in);
char ch = sc.next().charAt(0);
2.2 通过将字符串转成字符数组后间接获取字符
1、还是使用 Scanner 类中的 next()/nextLine() 方法获取到字符串,再通过toCharArray()方法将字符串转化成字符数组,然后获取到字符数组的首元素:toCharArray()[0],即实现从控制台输入一个字符的需求。
2、代码展示:
Scanner sc = new Scanner(System.in);
char ch = sc.next().toCharArray()[0];
2.3 通过字符串直接获取字符
1、还是使用 Scanner 类中的 next()/nextLine() 方法获取到字符串,此时我们只输入一个字符作为字符串也可以。
Scanner sc = new Scanner(System.in);
String ch = sc.next();