将字符串name 转化为首字母大写。
普遍的做法是用subString()取第一个字母转成大写再与之后的拼接:
str = str.substring(0, 1).toUpperCase() + str.substring(1);
看到一种效率更高的做法:
使用ASCII码偏移来转。原作者不详,感觉思路略NB,堪比2<<3。
public static String firstAlphabetToUpper(String str) {
char[] c = str.toCharArray();
c[0]-=32;
return String.valueOf(c);
}
为了避免参数异常,返回奇怪的字符,可以稍作改进。
public static String firstAlphabetToUpper(String str) {
char[] c = str.toCharArray();
if(c[0] < 97 || c[0] > 122){
throw new IllegalArgumentException(str + ":首位不是小写字母!");
}
c[0]-=32;
return String.valueOf(c);
}