Java首字母大写

来源:互联网 发布:数据库系统的构成 编辑:程序博客网 时间:2024/04/30 12:51

  最近看公司的代码,有一个字符串的操作类,其中就有常见的首字母大写的转换方法,然后我还特意到网络上搜了一下,基本上都是这样的写法:

    /**      * 将字符串的首字母大写      */      public static String capitalize(String str) {          StringBuilder sb = new StringBuilder();          if (str != null && str.length() > 0) {              sb.append(str.substring(0, 1).toUpperCase());              if (str.length() > 1) {                  sb.append(str.substring(1));              }              return sb.toString();          }          return str;      }  

  如上写法一点问题没有,拆开之后将第一个字母转换成大写,然后再拼接回去,然而我并不满足,因为这样写太麻烦了,操作英文字母大小写的格式,我第一个想到的就是做Unicode编码的偏移,所以我给一下我自己的写法:

    public static String capitalize(String str) {        char[] cs = str.toCharArray();        if(cs[0] > 96 && cs[0] < 123) {            cs[0] -= 32;        }        return String.valueOf(cs);    }

  对,就这么几行,而且非常高效,首字母大写的目标是26个小写字母,它们的编码范围在97~122,而26大写字母的范围在65~90,刚好偏移量为32,所以就有了以上的写法。
  并不是为了炫耀什么的,就是觉得给所有能看到的朋友一个思路,再碰到任何和字母大小写相关的问题的时候,就考虑使用Unicode编码偏移来解决问题,这样不仅高效,而且能精简代码。

0 0
原创粉丝点击