0

我这里有这个方法:

public char charAt(int location) {
    //TODO Finish method
    return "a";
}

我添加了 return"a"只是为了测试 char 数据类型,因为我是一名学生并且是 java 新手。我从 Eclipse 收到一个错误,告诉我转换为 String。是"A"不是一个character

它将返回 1;没有问题,但它不会需要一个字母character

谢谢。

4

6 回答 6

8

应该

public char charAt(int location) {
    //TODO Finish method
    return 'a';
}

不是"引号,应该是'

喜欢阅读:Java中的单引号和双引号有区别吗?

于 2013-09-11T12:05:38.190 回答
2

编译器将其中的所有"doublequotes"内容视为字符串。如果您想要一个字符,请使用单引号:'a'.

为什么return "a";不工作但是return 1;是:

int 可以转换为 char。
字符串不能(自动)转换为字符。

于 2013-09-11T12:06:00.663 回答
1

它应该'a'代替"a". 双引号代表String,单引号代表char。所以你的代码应该是

public char charAt(int location) {
    //TODO Finish method
    return 'a';
}
于 2013-09-11T12:06:25.007 回答
0

您正在返回一个字符串而不是 char

这样做

public char charAt(int location) {
    //TODO Finish method
    return 'a';
}
于 2013-09-11T12:06:52.367 回答
0

尝试

  public char charAt(int location) {
            //TODO Finish method
            String str ="a";  // actual string could be different 
            return str.charAt(location);
        }
于 2013-09-11T12:09:02.853 回答
0

如果这是一个字符使用如下

 public char charAt(int location) { //return char       
    return 'a';
    }

或者

public int charAt(int location) {   //return  int value of char
  return 'a';
}
于 2013-09-11T12:09:15.993 回答