问题描述

在使用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();

但可以做到不影响其他的字符(真正意义上的读入一个字符)