0

我遇到问题让 net-beans 接受一个角色,然后说这个人是 hr 有薪工人还是月薪,任何帮助都会得到 char 行的错误

import java.util.Scanner;

public class Infromation {

    public static void main(String [] args){

        Scanner input=new Scanner(System.in);
        System.out.print("Enter employee num");
        int e_num=input.nextInt();
        System.out.print("Enter employee first name");
        String e_fname=input.next();
        System.out.print("Enter employee surname");
        String e_sname=input.next();
        System.out.print("Enter employee code C,H and F");
        char e_code=input.next();
4

4 回答 4

6
char e_code=input.next();

Scanner.next()返回一个字符串。

如果你想让角色离开 Scanner.next() :

char e_code = input.next().charAt(0);
于 2012-12-13T11:46:15.057 回答
2

采用

char e_code=input.next().charAt(0);
                        ^^^^^^^^^^

代替

char e_code=input.next();

于 2012-12-13T11:47:50.103 回答
0

采用

Char e_code=input.next().charAt(0);

获取字符输入。

于 2012-12-13T11:56:22.530 回答
0

您应该创建一种方法来支持这一点,因为它可能存在各种问题。

public static char stringToChar(String value) {

  if(value == null) {
     throw new NullPointerException("stringToChar expect a not null value of argument [value]");
  }

  char[] charArray = value.toCharArray();

  if(charArray.length == 0) {
     return '\0';  // Empty 
     // or throw new IllegalStateException("stringToChar  expect a String that is not empty");
  }

  if(charArray.length == 1) {
     return charArray[0];
  }

  throw new IllegalStateException("stribtToChar expect a single Character string input:[" + value + "]");
}
于 2012-12-13T11:56:52.673 回答