C# 【转贴】中判断字符串是全角还是半角

转载 2008年10月03日 17:23:00
全角是指用二个字节来表示的一个字符
半角是用一个字节来表示的一个字符
 
这样的话我们就可以用string.length 和System.text.Encoding.Default.GetByteCount来判断
 
其中string.length表示字符串的字符数,
System.text.Encoding.Default.GetByteCount表示字符串的字节数。
 
将全角的变为半角  
  string   s="GBJ1—86";  
  char[]   c=s.ToCharArray();  
  for   (int   i=0;i<c.Length;i++)  
  {   
      byte[]   b=System.Text.Encoding.Unicode.GetBytes(c,i,1);   
      if   (b.Length==2)   
      {   
          if   (b[1]==255)   
          {   
              b[0]=(byte)(b[0]+32);   
              b[1]=0;   
              c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];   
          }   
      }  
  }  
  //半角  
  string   news=new   string(c);  
 
把字母,数字由半角转化为全角  
  public   string     ChangeStr(   string   str)  
  {   
      char[]   c=str.ToCharArray();   
      for   (int   i=0;i<c.Length;i++)   
      {   
      byte[]   b=System.Text.Encoding.Unicode.GetBytes(c,i,1);   
      if   (b.Length==2)   
      {  
              if   (b[1]==0)  
              {   
                      b[0]=(byte)(b[0]-32);   
                      b[1]=255;   
                      c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];  
              }   
      }  
  }  
  //半角  
  string   strNew=new   string(c);  
  return   strNew;  
  }  
 
判断的方法一:  
代码测试报告:只能对单个字符进行判断,如果出现"23"    判断结果是半角,忽略了后面的全角,如果需要判断就要遍历证字符串
  string   s   =   null;  
   
  s   =   "A";  
  MessageBox.Show(((s[0]   >   255)   ?   "全角"   :   "半角")   +   "   ASCII   of   "   +   Convert.ToInt32(s[0]).ToString("x").ToUpper());  
   
  s   =   "A";  
  MessageBox.Show(((s[0]   >   255)   ?   "全角"   :   "半角")   +   "   ASCII   of   "   +   Convert.ToInt32(s[0]).ToString("x").ToUpper());  
   
  //中文的Unicode大概是从4E00   到   9FA0,所以上例一个是0x41   一个是0xFF21
 
判断的方法二:
代码测试报告:只能对单个字符进行判断,如果出现"23"    判断结果是半角,忽略了后面的全角,如果需要判断就要遍历证字符串
if (checkString.Length == Encoding.Default.GetByteCount(checkString))
   {
    return true;
   }
   else
   {
    return false;
   }
 
全角如下:
if (2 * checkString.Length ==  Encoding.Default.GetByteCount(checkString))
   {
    return true;
   }
   else
   {
    return false;
   }

 

js判断数字,如果出现全角数字,将其转换为半角

//JS把全角转为半角的函数 function CtoH(str) { var result=""; for (var i = 0; i < str.length; i++){ if (str...
  • kaidishi
  • kaidishi
  • 2014年06月18日 11:45
  • 1856

python 判断unicode字符串是汉字/数字/字母,全角/半角转换

文本处理经常会判断字符串是否是字母,数字或者汉字的问题,python str模块提供了些方法,但是不支持unicode,所以模仿str的相关方法,实现了unicode 字符串的汉字/数字/字母判断方法...
  • xuh5156
  • xuh5156
  • 2013年06月17日 13:55
  • 3823

如何理解python3的unicode,以及全角半角转换

关于unicode最易懂的解释(没有之一),建议耐心看完: 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 http://www.freebuf.com/articles/other...
  • zinnc
  • zinnc
  • 2017年03月30日 21:56
  • 1888

C# 字符串全角 半角转换

using System; namespace SFiresoft.Util { /// /// 字符串操作辅助类 /// /// /// 创建者:su...
  • sucsy
  • sucsy
  • 2013年05月29日 12:59
  • 412

C#实现字符串全角半角转换类

  • 2008年06月18日 09:27
  • 2KB
  • 下载

python 判断unicode字符串是汉字/数字/字母,全角/半角转换

文本处理经常会判断字符串是否是字母,数字或者汉字的问题,python str模块提供了些方法,但是不支持unicode,所以模仿str的相关方法,实现了unicode 字符串的汉字/数字/字母判断方法...
  • xuh5156
  • xuh5156
  • 2013年06月17日 13:55
  • 3823

字符串,标点符号全角半角转换

  • 2010年06月01日 10:28
  • 2KB
  • 下载

Split-由任意个全角或半角空格分隔开的任意长度的字符串

  • 2008年10月11日 11:36
  • 345KB
  • 下载

php字符串处理之全角半角转换(正则匹配全角字符思路)

半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路。 一、概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)例如:/[\x...
  • h330531987
  • h330531987
  • 2017年04月14日 21:15
  • 744

Java 按指定长度截取字符串,考虑全角半角

于用 Java 来截取指定长度的字符串,我在网上看到很多帖子和方法,大都是说用 substring() ,但是如果考虑到全角半角的话,这是怎么也达不到期望值的。因为之前自己也用到过,所以把自己整理好的...
  • csy92620
  • csy92620
  • 2015年03月25日 22:15
  • 310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 【转贴】中判断字符串是全角还是半角
举报原因:
原因补充:

(最多只允许输入30个字)