zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/yangchuncool/p/3181474.html
Copyright © 2011-2022 走看看