下划线字符串转Pascal Case:将PRODUCT_CHANGE_IT_LATER转为ProductChangeItLater
把下划线分隔的全大写字符串转成Pascal Case的实用方法
没问题,我来给你几种不同编程语言下的实现方案,轻松把PRODUCT_CHANGE_IT_LATER这类格式转成ProductChangeItLater~
Python 实现
最直观的思路是按下划线拆分字符串,对每个单词做首字母大写处理,再拼接起来:
def snake_to_pascal(s): # 按下划线分割,每个单词首字母大写后拼接 return ''.join(word.capitalize() for word in s.split('_')) # 测试示例 input_str = "PRODUCT_CHANGE_IT_LATER" print(snake_to_pascal(input_str)) # 输出:ProductChangeItLater
capitalize()方法会自动把单词的首字母转大写,其余字母转小写,完美适配你的全大写输入场景。
JavaScript 实现
有两种常用方式,一种是拆分后映射处理,另一种用正则表达式:
方式1:拆分+映射
function snakeToPascal(s) { return s.split('_') .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) .join(''); } // 测试 const inputStr = "PRODUCT_CHANGE_IT_LATER"; console.log(snakeToPascal(inputStr)); // 输出:ProductChangeItLater
方式2:正则替换
先把字符串转小写,再匹配下划线后的字符转大写,最后修正首字母:
function snakeToPascal(s) { // 先转小写,替换下划线+字符为大写字符 const lowerCamel = s.toLowerCase().replace(/_([a-z])/g, (_, char) => char.toUpperCase()); // 首字母转大写得到PascalCase return lowerCamel.charAt(0).toUpperCase() + lowerCamel.slice(1); }
C# 实现
可以利用TextInfo的标题格式化功能,或者用LINQ处理:
方式1:TextInfo 方案
using System.Globalization; public static string SnakeToPascal(string s) { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; // 转小写→下划线换空格→标题格式→去掉空格 return textInfo.ToTitleCase(s.ToLower().Replace("_", " ")).Replace(" ", ""); } // 测试 string inputStr = "PRODUCT_CHANGE_IT_LATER"; Console.WriteLine(SnakeToPascal(inputStr)); // 输出:ProductChangeItLater
方式2:LINQ 方案
和Python思路类似,拆分后处理每个单词再拼接:
using System.Linq; public static string SnakeToPascal(string s) { return string.Concat(s.Split('_').Select(word => char.ToUpper(word[0]) + word.Substring(1).ToLower())); }
如果是其他编程语言的需求,随时告诉我,我再补充对应的实现~
内容的提问来源于stack exchange,提问作者Soner from The Ottoman Empire
相关产品推荐
相关产品推荐

