声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善。我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。本文采用扩展方法解决全半角切换的问题,效果图

代码如下:

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;//请自行完成

}

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

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

  1. java 全角_java字符全角半角转换

    序 本文展示一下如何将char进行半角与全角转换. 术语 全角 SBC case Sexagesimal to Binary Converter 60进制转为2进制 半角 DBC case Decim ...

  2. 中文字符,全角字符的正则表达式

    经过测试其中匹配双字节字符(包括汉字在内):[^\x00-\xff]非常好用推荐一下 关键字:正则表达式 模式匹配 Javascript 摘要:收集一些常用的正则表达式. 正则表达式用于字符串处理,表 ...

  3. mysql全角正则表达式_中文字符,全角字符的正则表达式(转载)

    经过测试其中匹配双字节字符(包括汉字在内):[^\x00-\xff]非常好用推荐一下 这个家伙收录的正则很多,呵呵 关键字:正则表达式  模式匹配 Javascript 摘要:收集一些常用的正则表达式 ...

  4. win10输入法中文模式全角半角切换bug解决

    在中文模式下,即使关闭了shift+空格热键也会切换全半角. 解决方式:还原输入法默认设置

  5. 中英文全角半角括号转换

    Java中文的全角半角以及英文的全角括号都是相同的,但是都和英文半角括号不相同,这个要注意一下.下面是通过维护两个字符数组完成字符替换 String s = "()";String ...

  6. 计算机考试半角全角,Word2007和2003全角半角来回转

    用Word写作,免不了引用网页或PDF文档等处的资料,很多时候粘贴过来的英文或数字是全角字符,整个版面看起来很不协调,需要将全角字符转换为半角字符.虽然Word提供的字符全角半角相互转换功能" ...

  7. php区分全角半角字符,php如何判断是字符串全角还是半角

    php如何判断是字符串全角还是半角 关注:168  答案:2  手机版 解决时间 2021-01-15 16:08 提问者夏日╮悲歌 2021-01-15 00:27 php如何判断是字符串全角还是半 ...

  8. C#正则表达式——中文/英文空格(全角/半角空格)处理

    1. 匹配中文(全角)空格 Regex.IsMatch(" ", "\u3000");\u3000是全角空格的16进制Unicode编码. <wbr> ...

  9. Windows自带输入法中文符号或全角半角切换

    问题: 最近在PC端微信中输入中文标点字符时,总是发现逗号字符间距很小,句号就是一个点,按ctrl+shift, shift+空格等快捷键,均不能切换到中文的标点符号. 解决: (1)中文标点符号切换 ...

  10. python 全角半角字符转换

    文章目录 1.相关原理 2. 相关代码 2.1 全角转半角 2.2 半角转全角 2.3 自定义转换 2.4 demo 参考文献 1.相关原理 全角即:Double Byte Character,简称D ...

最新文章

  1. 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
  2. MYSQL主从数据库搭建
  3. 这份优化清单,你做了哪些?
  4. hive脚本执行方式
  5. python supervisor flask_supervisor配合uwsgi部署flask应用
  6. redis数据丢失_有效避免数据丢失!Redis持久化方案选择详解
  7. 【11.18总结】从SAML出发在重定向中发现的XSS漏洞
  8. SSM整理笔记1——SSM网站初步功能设计
  9. 利用国内镜像加快pip下载速度和成功率
  10. 使用Nginx、Keepalived构建负载均衡
  11. Java面试题系列(X)优化tomcat配置
  12. 24.卷1(套接字联网API)---带外数据
  13. 坐标轴范围及刻度的自适应算法
  14. Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的解决办法
  15. 别错过,卡方检验实用总结!
  16. Linux终端共享分屏神器tmux
  17. 深度学习入门笔记(十四):Softmax
  18. web2.0常用网页配色
  19. 【历史上的今天】3 月 14 日:微软发布 IE9;黑莓创始人出生;圆周率计算创造新纪录
  20. ar 华为路由器 端口映射_求教华为AR2200路由器端口映射配置

热门文章

  1. C++实现tree234树(附完整源码)
  2. QT的QBufferDataGenerator类的使用
  3. find_all 返回空 python_python小课堂23 - 正则表达式(一)
  4. 04_pandas字符串函数;数据合并concat、merge;分组groupby;Reshaping;Pivot tables;时间处理(date_range、tz_localize等)
  5. 日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)
  6. 基于XML配置的Spring MVC(所需jar包,web.xml配置,处理器配置,视图解析器配置)
  7. 项目--教师日常办公平台中的活动图
  8. 表的插入、更新、删除、合并操作_7_通过视图插入
  9. RASA NLU Chi安装
  10. 服务器系统安装iis7.0,Windows2003服务器架IIS7.0怎么安装