c# 全角转半角

 

 

复制代码
   /// <summary>
        ///判断字符是否英文半角字符或标点
        //32    空格
        //33-47    标点
        //48-57    0~9
        //58-64    标点
        //65-90    A~Z
        //91-96    标点
        //97-122    a~z
        //123-126  标点
        /// </summary>
        /// <param name="c"></param>
        /// <returns></returns>
        public static bool IsBjChar(char c)
        {
            int i = (int)c;
            return i >= 32 && i <= 126;
        }

        /// 判断字符是否全角字符或标点
        /// 全角字符 - 65248 = 半角字符
        /// 全角空格例外

        public static bool IsQjChar(char c)
        {
            if (c == '\u3000')
            {
                return true;
            }
            int i = (int)c - 65248;
            if (i < 32)
            {
                return false;
            }
            else
            {
                return IsBjChar((char)i);
            }
        }

        /// <summary>
        /// 将字符串中的全角字符转换为半角
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static string ToBj(string s)
        {
            if (s == null ||  string.IsNullOrEmpty(s.Trim()))
            {
                return "";
            }
            else
            {
                StringBuilder sb = new StringBuilder(s.Length);
                for (int i = 0; i < s.Length; i++)
                {
                    if (s[i] == '\u3000')
                    {
                        sb.Append('\u0020');
                    }
                    else if (IsQjChar(s[i]))
                    {
                        sb.Append((char)((int)s[i] - 65248));
                    }
                    else
                    {
                        sb.Append(s[i]);
                    }
                }
                return sb.ToString();
            }
        }
复制代码

 

posted @   低调码农哥!  阅读(237)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示