c conversion full Angle half Angle method example

  • 2020-05-27 06:56:53
  • OfStack

C# full Angle to half Angle

Create a new project, quanbanjiao, and create a new class, Class1, under this project


using System;
using System.Web;
using System.Text;
namespace quanbanjiao
{
    public class Class1
    {
        /**/
        /// <summary>
        ///  Determines whether a character is an English halfhorn or a punctuation mark 
        /// </summary>
        /// <remarks>
        /// 32     The blank space 
        /// 33-47     punctuation 
        /// 48-57    0~9
        /// 58-64     punctuation 
        /// 65-90    A~Z
        /// 91-96     punctuation 
        /// 97-122    a~z
        /// 123-126   punctuation 
        /// </remarks>
        public static bool IsBjChar(char c)
        {
            int i = (int)c;
            return i >= 32 && i <= 126;
        }
        /**/
        /// <summary>
        ///  Determines whether a character is full corner or punctuation 
        /// </summary>
        /// <remarks>
        /// <para> The Angle of character  - 65248 =  Half Angle character </para>
        /// <para> Full space is an exception </para>
        /// </remarks>
        public static bool IsQjChar(char c)
        {
            if (c == '\u3000') return true;
            int i = (int)c - 65248;
            if (i < 32) return false;
            return IsBjChar((char)i);
        }
        /// <summary>
        ///  Converts full - Angle characters in a string to half - Angle characters 
        /// </summary>
        public static string ToBj(string type,string s)
        {
            if (s == null || s.Trim() == string.Empty) return s;
            StringBuilder sb = new StringBuilder(s.Length);
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == '\u3000')
                    sb.Append('\u0020');
                else if (IsQjChar(s[i]))
                    sb.Append((char)((int)s[i] - 65248));
                else
                    sb.Append(s[i]);
            }
            // If it is int Type, you can only enter int Type, otherwise automatically set to 0
            if (type.ToLower() == "int")
            {
                try
                {
                    Convert.ToInt32(sb.ToString());
                }
                catch
                {
                    return "0";
                }
            }
 
            // If it is float or double Type, you can only enter these two types, otherwise automatically set to 0
            if (type.ToLower() == "float" || type.ToLower() == "double")
            {
                try
                {
                    Convert.ToDouble(sb.ToString());
                }
                catch
                {
                    return "0";
                }
            }
            return sb.ToString();
        }
    }
}


Related articles: