1

我所拥有的是一个有名字和首字母的学生

所以我有一个班级学生,例如:

private String name = "Unknown";

private char nameLetter = "u"; 

public void identify()
{
    System.out.println("Student first letter : " + nameLetter);
    System.out.println("Student name : " + name);

}

public void setName(String newName)
{
    name = newName;
    nameLetter = newName.substring(0);
}

但我得到错误不能从字符串转换为字符。

我知道我可以制作一个字符串 nameLetter 而不是 char,但我想用 char 来尝试它。

4

6 回答 6

7

你需要这个:

nameLetter = newName.charAt(0);

当然你必须检查它newName的长度是否至少为1,否则会出现异常:

public void setName(String newName) {
    name = newName;
    if (newName != null && newName.length() > 0) {
        nameLetter = newName.substring(0);
    } else {
        nameLetter = '-'; // Use some default.
    }
}
于 2013-09-19T13:26:06.773 回答
4

"u"是一个字符串文字,'u'一个字符。

具体来说,您需要替换nameLetter = newName.substring(0);nameLetter = newName.charAt(0);前者返回 a string,后者返回 a char

于 2013-09-19T13:26:29.390 回答
1

'用代替包围字符基元"

private char nameLetter = 'u'; 

使用charAt而不是substring从中提取字符Strings

nameLetter = newName.charAt(0);

阅读:字符

于 2013-09-19T13:26:30.197 回答
1
nameLetter = newName.toCharArray[0];

或者你可以试试

nameLetter = newName.charAt[0];

要了解这两种方法之间的区别,您可以查看此问题的答案

于 2013-09-19T13:27:27.480 回答
0

尝试

nameLetter = newName.charAt(0);
于 2013-09-19T13:26:40.210 回答
0

您可能想查看该String#charAt(int)功能。

于 2013-09-19T13:27:25.220 回答