在C语言中将字符串转换为合法类名#

2024-10-03 21:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做与此Python函数相同的事情,但使用C#。
理想情况下,使用类似Python的单行代码

def to_classname(name: str) -> str:
    """
    something-2do -> Something2do
    firefox-developer -> FirefoxDeveloper
    """
    return ''.join([x.capitalize() for x in name.split('-')])

Tags: to函数代码namedeveloperdef情况firefox
2条回答

您可以使用以下命令。它拆分连字符上的字符串并删除任何空字符串(由于多个连续连字符)。然后,在将每个条目映射到一个字符串(其中第一个字母为大写字母,其余字母为小写字母)后,它连接这些条目

public static string ToClassName(string str)
{
   var splits = str.Split('-', StringSplitOptions.RemoveEmptyEntries);
   return string.Concat(splits.Select(s => char.ToUpper(s[0]) + (s.Length > 1 ? s.Substring(1).ToLower() : "")));
}

您可能需要添加以下内容:

using System.Linq;

请注意,它不会验证微不足道的输入

基于这个{a1},我提出这个解决方案

using System;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var rawName = "firefox-developer";
        string className=string.Empty;
        rawName.Split('-').ToList().ForEach(name => className += (name.First().ToString().ToUpper() + name.Substring(1)));
        System.Console.WriteLine(className);
    }
}

相关问题 更多 >