程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C# 全角和半角轉換以及判斷的簡單代碼

C# 全角和半角轉換以及判斷的簡單代碼

編輯:更多關於編程
    這篇文章介紹了在C#中判斷和轉換全角半角的方法,有需要的朋友可以參考一下  

    1. 判斷是否為全角半角
     全角占用二個字節 半角占用一個字節 用string.length 和System.text.Encoding.Default.GetByteCount 其中string.length表示字符串的字符數,
    System.text.Encoding.Default.GetByteCount表示字符串的字節數。
    判斷半角(是半角則true)
    如下:

    復制代碼 代碼如下:
    if (checkString.Length == Encoding.Default.GetByteCount(checkString)) { return true; } else { return false; }

      
    全角(是全角則返回true)
    如下:

    復制代碼 代碼如下:
    if (2 * checkString.Length == Encoding.Default.GetByteCount(checkString)) { return true; } else { return false; }

     
    2.全角半角轉換

    復制代碼 代碼如下:


    #region 全角半角轉換
            /// <summary>
            /// 轉全角的函數(SBC case)
            /// </summary>
            /// <param name="input">任意字符串</param>
            /// <returns>全角字符串</returns>
            ///<remarks>
            ///全角空格為12288,半角空格為32
            ///其他字符半角(33-126)與全角(65281-65374)的對應關系是:均相差65248
            ///</remarks>
            public  static string 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);
                }
                return new string(c);
            }
            /// <summary> 轉半角的函數(DBC case) </summary>
            /// <param name="input">任意字符串</param>
            /// <returns>半角字符串</returns>
            ///<remarks>
            ///全角空格為12288,半角空格為32
            ///其他字符半角(33-126)與全角(65281-65374)的對應關系是:均相差65248
            ///</remarks>
            public static string 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);
                }
                return new string(c);
            }
            #endregion

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved