将数组中的字符串转换为标题大小写-JAVA



我有一个对象数组(customer(,它包含以下组件:first_Name&last_Name。我正在尝试将每个客户的名字和姓氏都转换为标题案例。我尝试了几种不同的方法来将字符串转换为标题大小写,但都失败了。这是我尝试过的最后一件事,我不明白为什么它不大写名字的第一个字母和姓氏的第一个字符。

for (Customer c : customers){
c.setFirst_name(c.getFirst_name().charAt(0).toUpperCase());
}

我已经检查过,名字和姓氏确实包含一个唯一的字母字符串,每个字符串的第一个字母都是小写字母。intellisense给我的错误是"不能取消引用字符">

此方法将字符串的第一个字符大写,其余字符小写:

public static String toTitle(String s) {
return (s.length() > 0) ? s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase() : "";
}

所以使用它:

for (Customer c : customers){
c.setFirst_name(toTitle(c.getFirst_name()));
c.setLast_name(toTitle(c.getLast_name()));
}

String.charAt((返回一个char,这是一个基元类型,因此没有方法。因此,在那里不允许调用toUpperCase((。

您可能想要的是在那里创建一个Character对象,也许是一个String。我们不知道,因为您从未显示过setFirst_name((签名。

字符串值是不可变的。你试图更改第一个字符。这行不通。您必须创建一个新字符串:提取原始字符串的第一个字符,将其转换为大写,并附加原始字符串的其余部分。

最新更新