传统思路是:先将String 的首字母单独接取下来转成大写,然后再拼接上剩余字符串。
public String upperCase(String str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
这里顺便提一下substring 的用法:
1、截取掉str 从首字母起长度为beginIndex 的字符串,将剩余字符串赋值给str。
str.substring(int beginIndex);
2、截取str 中从beginIndex 开始至endIndex 结束时的字符串,并将其赋值给str。
索引从0开始,返回的字符串包括beginIndex 处字符,但不包括endIndex 处的字符,endIndex 可以理解为长度。
str.substring(int beginIndex, int endIndex);
接下来按一种效率更高的写法:
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);
}
这里先将字符串转为字符数组,然后将数组的第一个元素,即字符串首字母,进行ASCII 码前移,ASCII 中大写字母从65开始,小写字母从97开始,所以这里减去32。