• C# 字符串首字符大写


    我找到一些把字符串首字符大写的方法。

    假如需要把字符串 “red” 转换为 “Red”,把 “red house” 转为 “Red house” 或者单词的第一个大写,下面就是我从网上看到的技术。

    public static string FirstCharToUpper(string input)
    {
        if (String.IsNullOrEmpty(input))
            throw new ArgumentException("ARGH!");
        return input.First().ToString().ToUpper() + input.Substring(1);
    }

    这个方法就是拿到第一个字符,然后加上后面的字符,可以看到这个方法需要三个字符串在内存。

    public string FirstLetterToUpper(string str)
    {
        if (str == null)
            return null;
    
        if (str.Length > 1)
            return char.ToUpper(str[0]) + str.Substring(1);
    
        return str.ToUpper();
    }

    这个方法也是需要两个字符串。

    下面的方法大概大家比较少会去发现,就是 CultureInfo 的方法

    CultureInfo.CurrentCulture.TextInfo.ToTitleCase(str.ToLower());

    这个方法是比较好方法,假如我输入”red house” 那么就会转换为 “Red House”

    上面的方法还可以使用这个方法

    CultureInfo("en-US").TextInfo.ToTitleCase("red house");

    如果需要使用拼接,可以使用这个方法

    s.Remove(1).ToUpper() + s.Substring(1) 

    上面这个方法不会把 “red house” 转换为 “Red House”

    下面给大家一个性能比较好的方法

            char[] a = s.ToCharArray();
            a[0] = char.ToUpper(a[0]);
            return new string(a);

    如果需要很多字符串都这样把第一个大写,可以使用下面方法

    string str = "red house";
                Console.WriteLine(System.Text.RegularExpressions.Regex.Replace(str, "^[a-z]", m => m.Value.ToUpper()));

    和上面方法一样写法,可以使用另外的函数

    Regex.Replace(str, @"^w", t => t.Value.ToUpper());

    如果希望有最好的速度,那么请用下面方法

    public static unsafe string ToUpperFirst(this string str)
    {
        if (str == null) return null;
        string ret = string.Copy(str);
        fixed (char* ptr = ret) 
            *ptr = char.ToUpper(*ptr);
        return ret;
    }

    https://stackoverflow.com/q/4135317/6116637

    本文同时放在我自己搭建的博客C# 字符串首字符大写

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

  • 相关阅读:
    无符号数和有符号数之间赋值和大小比较
    (转)关于Linux核心转储文件 core dump
    mysql忘记root密码解决办法
    CentOS7安装iptables防火墙
    CENTOS7下安装REDIS
    iptables命令(备忘)
    ps 命令详解
    virtualenv
    How to Baskup and Restore a MySQL database
    linux 用户/用户组添加修改删除(ubuntu/centos)
  • 原文地址:https://www.cnblogs.com/lindexi/p/12087263.html
Copyright © 2020-2023  润新知