传统思路是:先将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。
本文介绍了两种实现Java字符串首字母大写的有效方法。一种是使用substring方法将首字母转换为大写并重新拼接;另一种是通过字符数组操作直接修改首字母的ASCII码来达到目的,后者效率更高。
4889

被折叠的 条评论
为什么被折叠?



