c#转换全角半角方法示例

 更新时间:2013年12月05日 16:01:02   作者:  
这篇文章主要介绍了c#如何转换全角半角,大家可以看一下下面的代码方法,可以参考一下

C#全角转换成半角

新建一个项目quanbanjiao,在此项目下新建一个类Class1

复制代码 代码如下:

using System;
using System.Web;
using System.Text;

namespace quanbanjiao
{
    public class Class1
    {
        /**/
        /// <summary>
        /// 判断字符是否英文半角字符或标点
        /// </summary>
        /// <remarks>
        /// 32    空格
        /// 33-47    标点
        /// 48-57    0~9
        /// 58-64    标点
        /// 65-90    A~Z
        /// 91-96    标点
        /// 97-122    a~z
        /// 123-126  标点
        /// </remarks>
        public static bool IsBjChar(char c)
        {
            int i = (int)c;
            return i >= 32 && i <= 126;
        }

        /**/
        /// <summary>
        /// 判断字符是否全角字符或标点
        /// </summary>
        /// <remarks>
        /// <para>全角字符 - 65248 = 半角字符</para>
        /// <para>全角空格例外</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>
        /// 将字符串中的全角字符转换为半角
        /// </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]);
            }

            //如果是int类型的,则只能输入int类型,否则自动设为0

            if (type.ToLower() == "int")
            {
                try
                {
                    Convert.ToInt32(sb.ToString());
                }
                catch
                {
                    return "0";
                }

            }

 

            //如果是float或double类型的,则只能输入这两种类型,否则自动设为0
            if (type.ToLower() == "float" || type.ToLower() == "double")
            {
                try
                {
                    Convert.ToDouble(sb.ToString());
                }
                catch
                {
                    return "0";
                }
            }
            return sb.ToString();
        }
    }
}

相关文章

  • c#中使用BackgroundWorker的实现

    c#中使用BackgroundWorker的实现

    本文主要介绍了c#中使用BackgroundWorker的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C#实现对用户输入数据进行校验的类实例

    C#实现对用户输入数据进行校验的类实例

    这篇文章主要介绍了C#实现对用户输入数据进行校验的类,实例分析了C#针对各种用户输入数据的常用校验技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 详解LINQ入门(下篇)

    详解LINQ入门(下篇)

    这篇文章主要介绍了详解LINQ入门(下篇),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • C#构造函数详解

    C#构造函数详解

    本文详细讲解了C#中的构造函数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 详解C#中SqlParameter的作用与用法

    详解C#中SqlParameter的作用与用法

    本篇文章主要介绍了C#中SqlParameter的作用与用法,因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作。
    2016-12-12
  • C#判断语句的表达式树实现

    C#判断语句的表达式树实现

    这篇文章介绍了C#判断语句的表达式树实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • c#实现sunday算法实例

    c#实现sunday算法实例

    Sunday算法思想跟BM算法很相似,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符,下面是用C#实现sunday的实例代码,有需要的朋友可以参考一下
    2013-08-08
  • C# 打开电子邮件软件的具体方法

    C# 打开电子邮件软件的具体方法

    这篇文章介绍了C# 打开电子邮件软件的具体方法,有需要的朋友可以参考一下
    2013-11-11
  • Unity3D如何获取时间戳或北京时间

    Unity3D如何获取时间戳或北京时间

    这篇文章主要为大家详细介绍了Unity3D获取时间戳或北京时间的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C#访问SQL Server数据库的实现方法

    C#访问SQL Server数据库的实现方法

    这篇文章主要介绍了C#访问SQL Server数据库的实现方法,以实例形式简单分析了C#连接、查询SQL Server数据库的具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论