Java 将字符串首字母转为大写 - 利用ASCII码偏移

将字符串name 转化为首字母大写。普遍的做法是用subString()取第一个字母转成大写再与之后的拼接:

 

str = str.substring(0, 1).toUpperCase() + str.substring(1);


看到一种效率更高的做法

 

 

public static String firstAlphabetToUpper(String str) {
    char[] c = str.toCharArray();
    c[0]-=32;
    return String.valueOf(c);
}

使用ASCII码偏移来转。原作者不详,感觉思路略NB,堪比2<<3。

 

 

=================

 

为了避免参数异常,返回奇怪的字符,可以稍作改进。

 

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);        
}

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)