Java无法仅读取一个字符
问题描述
在使用java中,有时希望可以像c语言一样单单读取一个字符,但是发现并没有nextChar()的方法可供使用。
解决办法
方法一是最常见的方法,和方法二类似都是先得到一个String字符串,然后得到第一个字符,而方法三是根本的解决办法(虽然不好用)
方法一:
1.先创建一个Scanner对象
2.调用Scanner对象的next()方法获取控制台输入,返回的是一个String类型,因为没有nextChar()方法
3.调用String的charAt(0)方法获取第一个字符
Scanner sc = new Scanner(System.in);
String s = sc.next();
char c = s.charAt(0);
//最后两条语句也可写为char c = sc.next().charAt(0);
方法二:
使用方法,将string转换为字符数组,然后取第一个字符即可
Scanner sc = new Scanner(System.in);
char c = scanner.next().toCharArray()[0];
方法三:
需要有强制转换(因为in.read()得到的是int类型)
需要引入.io(import java.io.*;)
char t = 0;
try {
t = (char)System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
或
2.在方法中抛出异常:public static void main(String[] args) throws IOException
然后
char t = 0;
t = (char)System.in.read();
但可以做到不影响其他的字符(真正意义上的读入一个字符)