将一个字符串首字母转大写(英文)

工作遇到了一个需求,从 properties 文件中获取配置的字段,然后将获取的字段的首字母转为大写。
可以使用两种方式来实现一下:

  • 1、利用 String 和 Character 自身提供的方法来实现:
    /**
     * 首字母转大写
     * @param s
     * @return
     */
    public static String toUpperFirstOne(String s) {
        if (Character.isUpperCase(s.charAt(0))) {
            return s;
        } else {
            return (new StringBuilder())
                    .append(Character.toUpperCase(s.charAt(0)))
                    .append(s.substring(1))
                    .toString();
        }
    }
  • 2、利用 ASCII 码的特性来实现:
 /**
     * 将字符串的首字母转大写
     * @param s
     * @return
     */
    private static String toUpperFirstCharacter(String s) {
        // 利用ascii编码的前移,效率要高于截取字符串进行转换的操作
        char[] cs = s.toCharArray();
        if (Character.isLowerCase(cs[0])) {
            cs[0] -= 32;
            return String.valueOf(cs);
        }
        return s;
    }

上面的两种方式都可以实现一个字符串的首字母转大写操作,经过多次测试,第二中方法在绝大多数情况下效率上稍微优于第一种,二者的时间差别大概是为微秒和纳秒级别。

PS:根据上面的代码,同样也可以写出两种对应的将一个字符串首字母转为小写的方法

  • 1、利用 String 和 Character 自身提供的方法来实现:
   /**
     * 首字母转小写
     * @param s
     * @return
     */
    public static String toLowerFirstOne(String s) {
        if (Character.isLowerCase(s.charAt(0))) {
            return s;
        } else {
            return (new StringBuilder())
                    .append(Character.toLowerCase(s.charAt(0)))
                    .append(s.substring(1))
                    .toString();
        }
    }
  • 2、利用 ASCII 码的特性来实现
 /**
     * 将字符串的首字母转小写
     * @param s
     * @return
     */
    private static String toLowerFirstCharacter(String s) {
        char[] cs = s.toCharArray();
        if (Character.isUpperCase(cs[0])) {
            cs[0] += 32;
            return String.valueOf(cs);
        }
        return s;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值