在平常大多数的国内软件开发过程中,也许我们并没有注意半角和全角的输入法对用户体验产生的效果(或许还会造成数据的紊乱),但是如果做过外包的都知道,国外在这一方面都要求的比较严,特别是日本。所以为了提高程序的用户使用效果,我们还是要对用户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("我是半角字"); //半角汉字 } }