在平常大多数的国内软件开发过程中,也许我们并没有注意半角和全角的输入法对用户体验产生的效果(或许还会造成数据的紊乱),但是如果做过外包的都知道,国外在这一方面都要求的比较严,特别是日本。所以为了提高程序的用户使用效果,我们还是要对用户Input进行check。
全角和半角的区别:
全角是指中文输入法状态条中的“半月”变成“满月”的时候,此时输入的英文字符会占用两个字节,通俗地说,就是所输入的英文字符看起来和中文字一样宽。
比如:
全角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ
半角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ
另外,标点符号也分中文态和英文态两种,要注意它们之间的切换。比如:
中文态下:,。;“”《》……
英文态下:,.;””<>………
一个java的判断方法的DEMO
/**
* @author 李国庆
* @company leemenz (C) copyright
* @time Sep 29, 2007 16:16:24 PM
* @version 1.0.0.0
* @package com.icnote.check
*/
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("我是半角字"); //半角汉字
}
}