尝试使用scnr.next读取char的用户输入

时间:2016-09-12 05:07:22

标签: java

继承我的代码: import java.util.Scanner;

public class BasicInput {
public static void main(String[] args) {

  Scanner scnr = new Scanner(System.in);
  int userInt = 0;
  double userDouble = 0.0;
  char userLetter = 'z';      

  userInt = scnr.nextInt();
  userDouble = scnr.nextDouble();
  userLetter = scnr.nextLine();

  System.out.println("Enter integer: " + userInt);
  System.out.println("Enter double: " + userDouble);
  System.out.println("Enter letter: " + userLetter);      

当我使用字母输入" z"运行它时,它会给我这个错误

    BasicInput.java:13: error: incompatible types
userLetter = scnr.nextLine();
                            ^

必需:char

发现:字符串

1错误

我该怎么做才能将字母作为输入读出并输出?

2 个答案:

答案 0 :(得分:0)

这是试图将String的值存储到char中 - 它不适合

尝试

String userLetter = scnr.nextLine();

然后只使用第一个字符

userletter.charAt (0);

答案 1 :(得分:0)

nextLine()接受String您需要考虑userLetter = scnr.next().charAt(0);请查看Why can't we read one character at a time from System.in?,了解其发生的原因。