【转】全角字符与半角字符的相互转换(C#)

C#代码 复制代码
  1. /// <summary>全角半角的相互转换   
  2. ///   
  3. /// </summary>   
  4. public class ConvertDBCAndSBC   
  5. {   
  6.   
  7.     /// <summary>半角转成全角   
  8.     /// 半角空格32,全角空格12288   
  9.     /// 其他字符半角33~126,其他字符全角65281~65374,相差65248   
  10.     /// </summary>   
  11.     /// <param name="input"></param>   
  12.     /// <returns></returns>   
  13.     public string DBCToSBC(string input)   
  14.      {   
  15.         char[] cc = input.ToCharArray();   
  16.         for(int i=0;i<cc.Length;i++)   
  17.          {   
  18.             if(cc[i] == 32)   
  19.              {   
  20.                 // 表示空格   
  21.                  cc[i]=(char)12288;   
  22.                 continue;   
  23.              }   
  24.             if(cc[i] < 127 && cc[i] > 32)   
  25.              {   
  26.                  cc[i]=(char)(cc[i]+65248);                   
  27.              }   
  28.          }   
  29.         return new string(cc);   
  30.      }   
  31.   
  32.     /// <summary>全角转半角   
  33.     /// 半角空格32,全角空格12288   
  34.     /// 其他字符半角33~126,其他字符全角65281~65374,相差65248   
  35.     /// </summary>   
  36.     /// <param name="input"></param>   
  37.     /// <returns></returns>   
  38.     public string SBCToDBC(string input)   
  39.      {   
  40.         char[] cc = input.ToCharArray();   
  41.         for (int i = 0; i < cc.Length; i++)   
  42.          {   
  43.             if(cc[i] == 12288)   
  44.              {   
  45.                 // 表示空格   
  46.                  cc[i] = (char)32;   
  47.                 continue;   
  48.              }   
  49.             if (cc[i] > 65280 && cc[i] < 65375)   
  50.              {   
  51.                  cc[i] = (char)(cc[i] - 65248);                   
  52.              }   
  53.   
  54.          }   
  55.         return new string(cc);   
  56.      }   
  57. }  

测试代码:
C#代码 复制代码
  1. static void Main(string[] args)   
  2. {   
  3.      Console.Write("请输入要转为半角的字符:");   
  4.     string str = Console.ReadLine();   
  5.      Console.WriteLine("半角:" + new ConvertDBCAndSBC().SBCToDBC(str));   
  6.      Console.ReadLine();   
  7.   
  8.      Console.Write("请输入要转为全角的字符:");   
  9.     string str2 = Console.ReadLine();   
  10.      Console.WriteLine("全角:" + new ConvertDBCAndSBC().DBCToSBC(str2));   
  11.      Console.ReadLine();   
  12. }  
posted @ 2010-03-21 16:46  RainUU  阅读(1570)  评论(0编辑  收藏  举报