/**////<summary> /// 转全角的函数(SBC case) ///</summary> ///<param name="input">任意字符串</param> ///<returns>全角字符串</returns> ///<remarks> ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///</remarks> publicstring ToSBC(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); } returnnewstring(c); } /**////<summary> /// 转半角的函数(DBC case) ///</summary> ///<param name="input">任意字符串</param> ///<returns>半角字符串</returns> ///<remarks> ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///</remarks> publicstring ToDBC(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); } returnnewstring(c); }
VB版本:
PublicFunction ToSBC()Function ToSBC(ByValinputAsString) AsString'转全角 Dim c AsChar() =input.ToCharArray Dim i AsInteger=0 While i < c.Length If c(i) =ChrW(32) Then c(i) =ChrW(12288) ElseIf AscW(c(i)) <127Then c(i) =ChrW((AscW(c(i)) +65248)) EndIf System.Math.Min(System.Threading.Interlocked.Increment(i), i -1) EndWhile ReturnNewString(c) End Function PublicFunction ToDBC()Function ToDBC(ByValinputAsString) AsString'转半角 Dim c AsChar() =input.ToCharArray Dim i AsInteger=0 While i < c.Length If AscW(c(i)) =12288Then c(i) =ChrW(32) ElseIf AscW(c(i)) >65280AndAlso AscW(c(i)) <65375Then c(i) =ChrW(AscW(c(i)) -65248) EndIf System.Math.Min(System.Threading.Interlocked.Increment(i), i -1) EndWhile ReturnNewString(c) End Function
posted on
2005-09-27 16:27RubyPDF
阅读(10876)
评论(4)
编辑收藏举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步