全角和半角

汉字的特点使我们要碰上两个最基本且又非常重要的概念,那就是全角与半角.形象的说,在使用英文输入法时,电脑屏幕上,一个英文字符(如“a”)所占的位置,人们称其为“半角”, <而一个汉字所占的位置则等于两个英文字符,故称其为“全角”。  在我们日常使用的电脑系统里,初始输入法一般都默认为英文输入法,这时自然会处在半角状态下,无论是输入字母、符号还是数字,始终都只占一个英文字符的位置。若切换到中文输入法状态中,则会有全角半角两种选择,对中文字符来说,这两种选择对其没有影响,它始终都要占两个英文字符的位置,但对此状态下输入的符号、数字以及英文字母来说,就显得很重要,如以下所示:  “QUAN” “QUAN”

  前者输入选择的是半角,后者为全角,两者呈现的结果差异很大,在选择全角后,即便是字母、符号、数字都无一例外地要被当成汉字进行处理,从视觉角度上看,它们因此也显得别扭了许多。

  很多人往往会忽视半角和全角间的切换,这样他们遇到一些怪事也不足为奇,比如我们上网时经常要输入密码或网址,若此时在全角状态下进行,只能因系统无法确认而导致失败;还有在发送电子邮件的时候,把电子邮件地址写成xxx@xxx.com,即全角“@”的形式,而非符合规定的半角“@”形式,结果也只能是无法成功发送邮件。要强调的是,在绝大多数场合里,都要求使用半角进行输入。
 
/*
全角和半角的区别:
全角是指中文输入法状态条中的“半月”变成“满月”的时候,此时输入的英文字符会占用两个字节,通俗地说,就是
所输入的英文字符看起来和中文字一样宽。
比如:
全角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ
半角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ

另外,标点符号也分中文态和英文态两种,要注意它们之间的切换。比如:
中文态下:,。;“”《》……
英文态下:,.;""<>.........
*/

public class HanZiCheck
{

  public void check(String str) {
    int length = str.length();
    int bytLength = str.getBytes().length;


    //都是半角的情况
    if(bytLength == length) {
      System.out.println("都是半角");      
    }
    
    //都是全角的情况
    else if(bytLength == 2 * length) {
      System.out.println("都是全角");    
    }


    //有全角有半角
    else {    
      System.out.println("有全角有半角");      
    }
}



  public static void main(String[] args)
  {
    HanZiCheck hzc=new HanZiCheck();


    hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //全角
    hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //半角



hzc.check(",.;<>........."); //半角
    hzc.check(",。;“”《》……"); //全角


    hzc.check("ABCD ABCDEF"); //全角半角混合
    hzc.check(",.《》……"); //全角半角混合

    hzc.check("我是全角字"); //全角汉字
    hzc.check("我是半角字"); //半角汉字

  }
}

运行后的结果是:
都是全角
都是半角
都是半角
都是全角
有全角有半角
有全角有半角
都是全角
都是全角

总结:对于字母和标点符号,可以用这种方法来判断是全角还是半角;对于汉字,判断是全角还是半角不能使用这种方法。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值