JAVA如何判断全角
全角与半角的区别
全角字符占用两个字节,通常用于中文、日文等双字节字符集;半角字符占用一个字节,常见于英文字母、数字和符号。全角字符的Unicode范围与半角不同,可通过编码特性进行判断。
判断全角字符的方法
Unicode范围检查 全角字符的Unicode范围通常包括:

- 全角字母和数字:
\uFF21-\uFF3A(A-Z)、\uFF41-\uFF5A(a-z)、\uFF10-\uFF19(0-9) - 全角符号:
\uFF01-\uFF0F、\uFF1A-\uFF20等
示例代码:

public static boolean isFullWidth(char c) {
return (c >= '\uFF01' && c <= '\uFF5E') || (c >= '\u3000' && c <= '\u303F');
}
正则表达式匹配 使用正则表达式检查字符是否属于全角范围:
public static boolean isFullWidth(String str) {
return str.matches("[\\u3000-\\u303F\\uFF00-\\uFFEF]+");
}
字节长度检查 全角字符在UTF-8编码中通常占3个字节(中文)或2个字节(全角符号),而半角字符占1个字节:
public static boolean isFullWidth(String str) {
return str.getBytes(StandardCharsets.UTF_8).length > 1;
}
注意事项
- 某些特殊符号(如中文标点
\u3000-\u303F)也属于全角范畴,需纳入判断范围。 - 不同编码(如GBK)的字节长度可能不同,建议优先使用Unicode范围判断。
- 全角空格
\u3000需单独处理,因其Unicode范围与其他全角字符不同。






