c# 中文字符(全角、半角)通用处理

简介:

声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善。

我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。
本文采用扩展方法解决全半角切换的问题,效果图

代码如下:

复制代码

        public static void Example(string userInput)
        
{
            
string sbc = userInput.ToSBC(); //转全角
            
//具体操作,如存入数据库 
            string dbc = userInput.ToDBC();//转半角
            
//具体操作,如存入数据库 
        }

        
/// <summary>
        
/// 转全角(SBC case)
        
/// </summary>
        
/// <param name="input">任意字符串</param>
        
/// <returns>全角字符串</returns>

        public static string ToSBC(this string input)
        
{
            
char[] c = input.ToCharArray();
            
for (int i = 0; i < c.Length; i++)
            
{
                
if (c[i] == 32)
                
{
                    c[i] 
= (char)12288;
                    
continue;
                }

                
if (c[i] < 127)
                    c[i] 
= (char)(c[i] + 65248);
            }

            
return new string(c);
        }

        
/// <summary>
        
/// 转半角(DBC case)
        
/// </summary>
        
/// <param name="input">任意字符串</param>
        
/// <returns>半角字符串</returns>

        public static string ToDBC(this string input)
        
{
            
char[] c = input.ToCharArray();
            
for (int i = 0; i < c.Length; i++)
            
{
                
if (c[i] == 12288)
                
{
                    c[i] 
= (char)32;
                    
continue;
                }

                
if (c[i] > 65280 && c[i] < 65375)
                    c[i] 
= (char)(c[i] - 65248);
            }

            
return new string(c);
        }
复制代码


中文处理中另一个常用的是获取拼音首字母,如:中华人民共和国,首字母为ZHRMGHG。很多库存管理程序中都将这个作为助记码,用作快速查询。
这里只给出扩展定义和示例,具体实现网上很多,但大部分都不能解决多音字的问题。

复制代码

        public static void Example2(string productName)
        
{
            
string shortName = productName.GetChineseSpell();
        }


        
/// <summary>
        
/// 获取汉字拼音首字母
        
/// </summary>
        
/// <param name="s">输入</param>
        
/// <returns>汉字拼音首字母,其它字符原样返回</returns>

        public static string GetChineseSpell(this string s)
        
{
            
return null;//请自行完成
        }
复制代码


还有中文简体繁体互转,也可以扩展进来。

分类:  ASP.NET
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/3607801.html ,如需转载请自行联系原作者
相关文章
|
C# 索引
C#判断中文字符(字符串)
protected bool IsChineseLetter(string input,int index) { int code = 0; int chfrom = Convert.
1122 0
|
C# 索引
C# 判断中文字符(字符串)-整理
  http://www.cnblogs.com/xiexiaokui/archive/2007/11/07/952655.html 方法一http://blog.csdn.net/qiujiahao/archive/2007/08/09/1733169.aspx在unicode 字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。
1265 0
|
C#
C#输入法全半角转换
/**////         /// 转全角的函数(SBC case)        ///         /// 任意字符串        /// 全角字符串        ///        ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(...
1070 0
|
C# 数据安全/隐私保护 移动开发
C#中cookie读写加密中文字符
代码 //加密  CookiesResponse.Cookies["askCRM"]["USERID"] = Tools.Encrypt(strUserName.Trim(), Tools.myKey);//解密string strUid = Request.
1017 0
|
3月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
60 3
|
2月前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
116 12
|
3月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
114 4