概述

所有的中文字符都为全角字符,占两个字节(16位)。而相应的全角英文字符则与中文字符等宽,相应地,半角英文字符则与半个中文字符宽度相同。这种特性也正是二者名称的体现,全角:Full-width;半角:Half-width。

半角字符与全角字符的规律:

半角字符的范围:33 (0x21) ~ 126 (0x7E)全角字符的范围:65281 (0xFF01) ~ 65374 (0xFF5E)全角字符与相应的半角字符恒差 65248 (0xFEE0),即全角字符对应的Code - 半角字母Code = 65248。如:char c1 = '('; // 中文括号 (

char c2 = '('; // 英文括号 (

System.out.println((int)c1);

System.out.println((int)c2);

System.out.println((int)c1 - (int)c2);

输出结果为:65288

40

65248

但空格例外:半角空格=32(0x20);全角空格=12288(0x3000)

在Java中判断全/半角字符:

在Java中,str.length()返回的是字符个数,而str.getBytes().length则返回的是字节数。则如果一个字符串中全部都是全角字符,那么str.length() = 2 * str.getBytes().length。反之如果一个字符串中全部都是半角字符,那么str.length() = str.getBytes().length。若str.getBytes().length < str.length() < 2 * str.getBytes().length,则字符串中既包含半角字符也包含全角字符(in most cases)。

public class JudgeWidth{

public String fullOrHalf(String str){

if( str.length() == 2 * str.getBytes().length ){

return "Full Width Characters Only"

}else if( str.length() = 2 * str.getBytes().length ){

return "Half Width Characters Only"

}else {

return "Half-Full Width Characters Mixture"

}

}

}

Copyright © 2088 俄罗斯世界杯主题曲_世界杯下一届 - pin8pin8.com All Rights Reserved.
友情链接