得到每个汉字的字首拼音码字母(大写)

简介: /// /// 判断是否为汉字 /// /// 待检测字符串 /// 是汉字返回true public static bool IsChineseChar...
    ///   <summary>  
    ///   判断是否为汉字  
    ///   </summary>  
    ///   <param   name="chrStr">待检测字符串</param>  
    ///   <returns>是汉字返回true</returns>  
    public static bool IsChineseCharacters(string chrStr)
    {
        Regex CheckStr = new Regex("[\u4e00-\u9fa5]");
        return CheckStr.IsMatch(chrStr);
    }


    /// <summary>
    /// 得到每个汉字的字首拼音码字母(大写)
    /// </summary>
    /// <param name="chrStr">输入字符串</param>
    /// <returns>返回结果</returns>
    public static string GetHeadCharacters(string chrStr)
    {
        string strHeadString = string.Empty;


        Encoding gb = System.Text.Encoding.GetEncoding("gb2312");
        for (int i = 0; i < chrStr.Length; i++)
        {
            //检测该字符是否为汉字
            if (!IsChineseCharacters(chrStr.Substring(i, 1)))
            {
                strHeadString += chrStr.Substring(i, 1);
                continue;
            }


            byte[] bytes = gb.GetBytes(chrStr.Substring(i, 1));
            string lowCode = System.Convert.ToString(bytes[0] - 0xA0, 16);
            string hightCode = System.Convert.ToString(bytes[1] - 0xA0, 16);
            int nCode = Convert.ToUInt16(lowCode, 16) * 100 + Convert.ToUInt16(hightCode, 16);      //得到区位码
            strHeadString += FirstLetter(nCode);
        }
        return strHeadString;
    }


    /// <summary>
    /// 通过汉字区位码得到其首字母(大写)
    /// </summary>
    /// <param name="nCode">汉字编码</param>
    /// <returns></returns>
    public static string FirstLetter(int nCode)
    {
        if (nCode >= 1601 && nCode < 1637) return "A";
        if (nCode >= 1637 && nCode < 1833) return "B";
        if (nCode >= 1833 && nCode < 2078) return "C";
        if (nCode >= 2078 && nCode < 2274) return "D";
        if (nCode >= 2274 && nCode < 2302) return "E";
        if (nCode >= 2302 && nCode < 2433) return "F";
        if (nCode >= 2433 && nCode < 2594) return "G";
        if (nCode >= 2594 && nCode < 2787) return "H";
        if (nCode >= 2787 && nCode < 3106) return "J";
        if (nCode >= 3106 && nCode < 3212) return "K";
        if (nCode >= 3212 && nCode < 3472) return "L";
        if (nCode >= 3472 && nCode < 3635) return "M";
        if (nCode >= 3635 && nCode < 3722) return "N";
        if (nCode >= 3722 && nCode < 3730) return "O";
        if (nCode >= 3730 && nCode < 3858) return "P";
        if (nCode >= 3858 && nCode < 4027) return "Q";
        if (nCode >= 4027 && nCode < 4086) return "R";
        if (nCode >= 4086 && nCode < 4390) return "S";
        if (nCode >= 4390 && nCode < 4558) return "T";
        if (nCode >= 4558 && nCode < 4684) return "W";
        if (nCode >= 4684 && nCode < 4925) return "X";
        if (nCode >= 4925 && nCode < 5249) return "Y";
        if (nCode >= 5249 && nCode < 5590) return "Z";
        return "";
    }


 

目录
相关文章
|
小程序 前端开发 算法
小程序实现个人支付功能
1.小程序的支付功能一直有人咨询 2.以前一直以为个人开发者是不可以使用支付功能的 3.但是微信自己有个骚操作 ,所以个人也可以使用小程序功能 4.下面介绍
1970 0
小程序实现个人支付功能
|
人工智能 安全 Cloud Native
龙蜥社区衍生版浪潮信息 KOS 升级!支持最新 5.10 内核,让大模型“开箱即用”
社区衍生版KeyarchOS产品升级,实现了大模型应用的“开箱即用”。
|
域名解析 Java Maven
Maven 公共代理库
Maven 公共仓库提供了对 maven central、jcenter、google、spring 等常用的 Maven 仓库的镜像功能。用户可以通过页面浏览仓库内容、检索和下载制品。在构建时使用 Maven 个公共仓库地址下载制品速度更快,更稳定。
56227 1
Maven 公共代理库
|
2天前
|
消息中间件 缓存 前端开发
WebSocket 与 MQTT 在即时通讯中的深度对比与架构选型指南
WebSocket 是双向通信通道,适合前端实时交互;MQTT 是轻量级消息协议,支持发布/订阅与可靠传输。二者互补,常结合使用:前端通过 WebSocket 接入,后端以 MQTT 实现高并发消息分发,构建可扩展的现代即时通讯系统。
107 17
|
23天前
|
开发工具 Android开发 开发者
LibChecker工具!一款查看并分析 App 使用的第三方库的应用软件
LibChecker是一款Android平台应用分析工具,可查看APP使用的第三方库、原生架构(32/64位)、四大组件等信息。支持APK解析、库引用统计、知名库标记、快照对比等功能,帮助开发者评估兼容性、安全性与性能。小巧便捷,仅4.44MB,轻松掌握应用细节。
152 1
|
8天前
|
人工智能 前端开发 数据挖掘
AI学习全景图:从大模型到RAG,从工具到变现,一条从0到1的路线
告别碎片化学习!本文系统梳理AI知识五层结构:从基础认知到商业变现,提供完整学习路径与优质资源链接。帮你构建AI知识网络,实现从工具使用到能力落地的跃迁。
|
C++
QML语法之property属性
QML语法之property属性
621 3
|
机器学习/深度学习 人工智能 自动驾驶
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第18天】深入理解深度学习中的卷积神经网络(CNN)
469 0
|
jenkins Java Linux
Jenkins打包Gitlab代码发布到远程Linux服务器
Jenkins打包Gitlab代码发布到远程Linux服务器
375 0
|
SQL 监控 专有云
分布式服务架构下的混沌工程实践
本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送“混沌工程”,获取分享PPT) 混沌工程的定义、价值、原则和流程; 混沌工程如何在企业中落地,以及 ChaosBlade 和混沌实验平台 AHAS Chaos 架构设计; 结合两个具体案例介绍了分布式服务下的混沌工程实践; 大家好,我是来自阿里的肖长军,今天给大家分享混沌工程在分布式服务架构下的具体实践。
22192 114