300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java如何判断字符串中包含有全角 半角符号 以及去除中文

Java如何判断字符串中包含有全角 半角符号 以及去除中文

时间:2024-06-19 23:52:42

相关推荐

Java如何判断字符串中包含有全角 半角符号 以及去除中文

全角:是指中GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号。

半角:是指英文件ASCII码中的各种符号。

全角状态下字母、数字符号等都会占两个字节的位置,也就是一个汉字那么宽,半角状态下,字母数字符号一般会占一个字节,也就是半个汉字的位置,全角半角对汉字没有影响。

现在我们来看一下在java编程语言中如何来判断字符串中的全角半角符号?

有两种方式可以判断:

1: 通过正则表达式来进行判断 [^\\x00-\\xff]

2: 通过字符编码的范围进行判断.

有关字符编码的范围介绍如下:(ps:我们可以编写一个测试用例输出所有的字符编码来确定范围)

public static void main(String[] args) {for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {System.out.println(i + " " + (char)i);}}

经过测试发现:

1.半角字符是从33开始到126结束

2.与半角字符对应的全角字符是从65281开始到65374结束

3.其中半角的空格是32.对应的全角空格是12288

半角和全角的关系很明显,除空格外的字符偏移量是65248(65281-33 = 65248)

使用正则表达式进行判断

public static void main(String[] args) {// 纯半角,包含有数字,字母,特殊符号,空格,汉字String test = "0123456789abcde!@#$%^& 你好";char[] chars_test = test.toCharArray();for (int i = 0; i < chars_test.length; i++) {String temp = String.valueOf(chars_test[i]);// 判断是全角字符if (temp.matches("[^\\x00-\\xff]")) {System.out.println("全角 " + temp);}// 判断是半角字符else {System.out.println("半角 " + temp);}}}

这里介绍下如果不想要字符串中的汉字的话,可以使用正则表达式将之去除: [\u4e00-\u9fa5]

@Testpublic void testChinese() {String ss = "qwen你ra是sd谁f";System.out.println(ss.replaceAll("[\u4e00-\u9fa5]", ""));}

或者是截取出字符串中的汉字

@Testpublic void testGetChinese() {String s = "qwen你ra是sd谁f";char[] chars_ss = s.toCharArray();String test = "";for (int i = 0; i < chars_ss.length; i++) {String temp = String.valueOf(chars_ss[i]);// 判断是汉字if (temp.matches("[\u4e00-\u9fa5]")) {test += temp;}}System.out.println(test);}

使用字符的unicode码进行判断

@Testpublic void testUnicode(){// 纯半角,包含有数字,字母,特殊符号,空格,汉字String test = "0123456789abcde!@#$%^& 你好";// 首先将汉字用空格替换掉test = test.replaceAll("[\u4e00-\u9fa5]", "");char[] chars_test = test.toCharArray();for (int i = 0; i < chars_test.length; i++) {int charValue = (int) chars_test[i];// 判断是全角字符if (charValue >= 65281 && charValue <= 65374 || charValue == 12288) {System.out.println("全角 " + (char) charValue);}// 判断是半角字符else if (charValue >= 33 && charValue <= 126 || charValue == 32) {System.out.println("半角 " + (char) charValue);}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。