String的第一个字母为Char

时间:2013-09-19 13:24:56

标签: java string

我所拥有的是一名有姓名和简历的学生

所以我有一个班级学生:

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);
}

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

我知道我可以创建一个String nameLetter而不是char,但我想用char来尝试它。

6 个答案:

答案 0 :(得分: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.
    }
}

答案 1 :(得分:4)

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

具体而言,您需要将nameLetter = newName.substring(0);替换为nameLetter = newName.charAt(0);,因为前者返回string,后者返回char

答案 2 :(得分:1)

使用'代替"

封闭字符基元
private char nameLetter = 'u'; 

使用charAt代替substringStrings

中提取字符
nameLetter = newName.charAt(0);

阅读:Characters

答案 3 :(得分:1)

nameLetter = newName.toCharArray[0];

或者你可以尝试

nameLetter = newName.charAt[0];

要了解这两种方法之间的区别,您可以看到此question

的答案

答案 4 :(得分:0)

nameLetter = newName.charAt(0);

答案 5 :(得分:0)

您可能需要查看String#charAt(int)功能。