驼峰命名字符串处理

41 篇文章 0 订阅
30 篇文章 0 订阅
/**
     * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
     * 
     * @param name 转换前的下划线大写方式命名的字符串
     * @return 转换后的驼峰式命名的字符串
     */
    public static String convertToCamelCase(String name)
    {
        StringBuilder result = new StringBuilder();
        // 快速检查
        if (name == null || name.isEmpty())
        {
            // 没必要转换
            return "";
        }
        else if (!name.contains("_"))
        {
            // 不含下划线,仅将首字母大写
            return name.substring(0, 1).toUpperCase() + name.substring(1);
        }
        // 用下划线将原始字符串分割
        String[] camels = name.split("_");
        for (String camel : camels)
        {
            // 跳过原始字符串中开头、结尾的下换线或双重下划线
            if (camel.isEmpty())
            {
                continue;
            }
            // 首字母大写
            result.append(camel.substring(0, 1).toUpperCase());
            result.append(camel.substring(1).toLowerCase());
        }
        return result.toString();
    }
/**
     * 下划线转驼峰命名  System.out.println(StringUtils.toUnderScoreCase("HelloWorld"));  //hello_world
     */
    public static String toUnderScoreCase(String str)
    {
        if (str == null)
        {
            return null;
        }
        StringBuilder sb = new StringBuilder();
        // 前置字符是否大写
        boolean preCharIsUpperCase = true;
        // 当前字符是否大写
        boolean curreCharIsUpperCase = true;
        // 下一字符是否大写
        boolean nexteCharIsUpperCase = true;
        for (int i = 0; i < str.length(); i++)
        {
            char c = str.charAt(i);
            if (i > 0)
            {
                preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
            }
            else
            {
                preCharIsUpperCase = false;
            }

            curreCharIsUpperCase = Character.isUpperCase(c);

            if (i < (str.length() - 1))
            {
                nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
            }

            if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase)
            {
                sb.append(SEPARATOR);
            }
            else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase)
            {
                sb.append(SEPARATOR);
            }
            sb.append(Character.toLowerCase(c));
        }

        return sb.toString();
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 将小写蛇形命名字符串转换成驼峰命名格式,可以按照以下步骤进行: 1. 将字符串按照下划线分割成单词数组。 2. 将数组中除第一个单词外的其他单词首字母大写。 3. 将数组中所有单词拼接起来,形成驼峰命名格式的字符串。 例如,将字符串 "hello_world" 转换成驼峰命名格式的字符串 "helloWorld",可以按照以下代码实现: ```python s = "hello_world" words = s.split("_") words = [words[0]] + [word.capitalize() for word in words[1:]] camel_case = "".join(words) print(camel_case) # 输出 "helloWorld" ``` ### 回答2: 蛇形命名字符串指的是多个单词用下划线连接的字符串,例如:my_name_is_john。驼峰命名格式则是将多个单词首字母大写,去掉连接符,例如:myNameIsJohn。将蛇形命名字符串转换成驼峰命名格式可以通过以下步骤完成: 1. 将蛇形命名字符串按下划线分割为多个单词,使用split()方法可以实现这一步。 2. 将每个单词的首字母大写,可以使用capitalize()方法实现。 3. 将多个单词连接起来,去掉连接符,可以使用join()方法实现。 以下是示例代码实现: ```python # 蛇形命名字符串 snake_str = 'my_name_is_john' # 按下划线分割单词 words = snake_str.split('_') # 首字母大写并连接单词 camel_case_str = '' for word in words: camel_case_str += word.capitalize() # 输出驼峰命名格式的字符串 print(camel_case_str) ``` 上述代码输出的结果为:myNameIsJohn。 另外,如果要将驼峰命名格式转换为蛇形命名字符串,可以使用正则表达式和replace()方法实现。示例代码如下: ```python import re # 驼峰命名格式字符串 camel_str = 'myNameIsJohn' # 将大写字母前加下划线,并全部转为小写 snake_str = re.sub(r'(?<!^)(?=[A-Z])', '_', camel_str).lower() # 输出蛇形命名格式的字符串 print(snake_str) ``` 上述代码输出的结果为:my_name_is_john。 ### 回答3: 小写蛇形命名字符串是一种常见的命名方式,在编程中也经常会遇到。然而,驼峰命名格式更加规范和易读,因此需要将小写蛇形命名字符串转换成驼峰命名格式。下面介绍两种转换方法。 第一种方法是通过循环遍历字符串,将下划线后面第一个字母转换成大写字母,然后删除下划线,最后将所有单词拼接在一起即可。具体步骤如下: 1. 将小写蛇形命名字符串分割成单词,即以下划线作为分隔符,使用split函数将字符串分割成列表。 2. 使用循环遍历每个单词,将单词的首字母大写,使用capitalize函数实现。 3. 将单词列表中的单词拼接在一起,使用join函数将列表中的元素连接成一个字符串。 示例代码: ```python def snake_to_camel_case(snake_str): words = snake_str.split('_') return ''.join([word.capitalize() for word in words]) ``` 第二种方法是使用正则表达式,通过正则表达式的匹配规则将下划线后面的字母转换成大写字母,然后删除下划线,最后将字符串首字母变成小写,即可得到驼峰命名格式的字符串。具体步骤如下: 1. 导入re库,使用正则表达式匹配下划线后面的字母。 2. 使用sub函数替换匹配到的字符串,将下划线后面的字母转换成大写字母,同时删除下划线。 3. 将字符串的首字母变成小写。 示例代码: ```python import re def snake_to_camel_case(snake_str): camel_str = re.sub('_([a-z])', lambda matched: matched.group(1).upper(), snake_str) return camel_str[0].lower() + camel_str[1:] ``` 这两种方法都可以将小写蛇形命名字符串转换成驼峰命名格式,选择哪一种方法主要取决于程序需要处理字符串形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄宝康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值