You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kebab转Title Case并添加单引号的C#函数优化需求

优化Kebab Case转Title Case的C#函数,处理单独"s"的场景

针对你需要处理分割后单个"s"并添加单引号的需求,我们可以调整原函数的逻辑,先分割字符串再逐个处理片段,具体优化后的代码如下:

private static string ConvertToTitle(string val)
{
    if (string.IsNullOrEmpty(val))
        return val;
        
    TextInfo textInfo = CultureInfo.CurrentCulture.TextInfo;
    var parts = val.Split('-');
    var resultParts = new List<string>();
    
    for (int i = 0; i < parts.Length; i++)
    {
        var part = parts[i];
        // 处理单独的"s"片段(非首段)
        if (part.Equals("s", StringComparison.OrdinalIgnoreCase) && i > 0)
        {
            // 将前一个片段与"s"合并为带单引号的形式
            var lastPart = resultParts[resultParts.Count - 1];
            resultParts[resultParts.Count - 1] = $"{lastPart}'s";
        }
        else
        {
            // 普通片段转标题大小写后加入结果列表
            resultParts.Add(textInfo.ToTitleCase(part));
        }
    }
    
    return string.Join(" ", resultParts);
}

逻辑说明

  1. 空值判断:先处理输入为空或null的情况,避免后续操作抛出异常
  2. 分割字符串:用'-'将输入分割为独立片段,方便逐个处理
  3. 遍历处理片段:
    • 如果当前片段是s(忽略大小写,兼容可能的大写输入)且不是第一个片段,就将它与前一个片段合并为前片段's的形式
    • 其他情况直接将片段转为标题大小写后加入结果列表
  4. 拼接结果:将处理后的片段用空格拼接成最终字符串

示例验证

  • 输入:basketball-and-football → 输出:Basketball And Football
  • 输入:tennis-soccer → 输出:Tennis Soccer
  • 输入:women-s-dress → 输出:Women's Dress

内容的提问来源于stack exchange,提问作者samantha07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:35:52