小白C#窗体系列-05.简体繁体转换软件

这一期是除了抽名系统外最最简单的的一个软件了,后面会把这些分开的实用工具全部集中起来的,出这一季主要是实用,后面还有进制转换颜色取色器等等小工具,一个学编程的程序猿总是用着别人的软件是不是总感觉怪怪的?那就样样来一套,慢慢的全部替换成自己的工具就OK了~~~这个过程很漫长,但不会久远,共同进步吧亲!  
软件下载(.NET 4.0 框架) http://pan.baidu.com/s/1hqqs2PI【源码看下面】
  
一、设计图纸:
 
二、代码分析:         其实就是一个泛型集合,Dictionary<T,T>,利用了键值对来实现的,需要注意的地方是,在繁体转简体的时候key不是唯一的,这时候你就得删一些了(很多繁简一样的,很多繁体跟个通假字一样多用,这时候把繁简一样的给删了就可以了[提供另一个思路:重复的加个空格之类的符号])[如果你想知道是哪些字重复就用Hashtable做,它抛的异常都会告诉你哪些key重复] 1、简体转繁体
 
public void ToComplex() 
{
    Dictionary<char, char> dics = new Dictionary<char, char>(); //两个char类型
            
    for (int i = 0; i < simplify.Length; i++)  //simplify用来放简体字的字符串
    {
        dics.Add(simplify[i], complex[i]);     //complex用来放繁体字的字符串,两者一一对应
    }
    
    if (string.IsNullOrEmpty(txt1.Text))
    {
        MessageBox.Show("要转换的内容不能为空,请将内容输入到简体文本框中!", "逆天友情提醒");
    }
    else
    {
        string s = txt1.Text;
                
        StringBuilder sb = new StringBuilder();
                
        for (int i = 0; i < s.Length; i++)
        {        
            if (dics.ContainsKey(s[i]))        //是否包含c[i]
            {
                sb.Append(dics[s[i]]);         //包含就替换成对应的繁体
            }
            else
            {
                sb.Append(s[i]);                //不包含就原样显示
            }
        } 
        txt2.Text = sb.ToString();
    }
            
}
 
2、繁体转简体 
 
public void ToSimplify()
{
    Dictionary<char, char> dicc = new Dictionary<char, char>();  //两个char类型
            
    for (int i = 0; i < complex.Length; i++)  //complex用来放繁体字的字符串
    {
        dicc.Add(complex[i], simplify[i]);        //simplify用来放简体字的字符串,两者一一对应
    }
    
    if (string.IsNullOrEmpty(txt2.Text))
    {
        MessageBox.Show("要转换的内容不能为空,请将内容输入到繁体文本框中!", "逆天友情提醒");
    }
    else
    {
        string c = txt2.Text;
                
        StringBuilder sb = new StringBuilder();
                
        for (int i = 0; i < c.Length; i++)
        {
            if (dicc.ContainsKey(c[i]))        //是否包含c[i]
            {
                sb.Append(dicc[c[i]]);         //包含就替换成对应的简体
            }
            else
            {
                sb.Append(c[i]);                //不包含就原样显示
            }
        }
        txt1.Text = sb.ToString();
    }
}
 
三、源码分享: http://pan.baidu.com/s/1eQCbo9k 四、视频共享: 等~~~       

本期推荐:  NETUnpack(NET脱壳神器1)                                                                             下一期: 打造MD5系列加密小工具

你可能感兴趣的:(C#)