1.传统思路是:先将String 的首字母单独接取下来转成大写,然后再拼接上剩余字符串。这个方法没毛病,只是效率不高。
public String upperCase(String str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
2.先将字符串转为字符数组,然后将数组的第一个元素,即字符串首字母,进行ASCII 码前移,ASCII 中大写字母从65开始,小写字母从97开始,所以这里减去32。这种方法效率高,推荐使用。
public String upperCase(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
}