在我们的代码中,有些时候,你需要对一些字符串进行处理,如trim()、replace()等,但是假若那些字符是全角字符的话,这些方法就没有作用 了!就想你想用trim()方法去掉首尾空格,但假若这个字符串的开头是全角的空格字符,不论怎么trim()都无法去掉,甚至使用replace()或 者replaceAll()方法也不行,完全不起作用!那么这是,你就需要把全角字符转为半角字符,然后再使用trim()或replace()等方法!
下面,就是全角字符转为半角字符的代码!我在网上找了很久,网上罗列出来很多,但是真的到全角转半角的时候,那些方法根本没起作用,所以我才弄出了以下方法,详见代码
/**
* 全角转半角
* @param input 要转换的字符串
* @return 半角字符串
*/
public static String ToDBC(String input) {
char[] c = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 12288) { //全角空格为12288
c[i] = (char) 32;
continue;
}
if (c[i]> 65280 && c[i]< 65375) { //其他字符全角(65281-65374)
c[i] = (char) (c[i] - 65248); //半角(33-126)与全角的对应关系是:均相差65248
}
}
return new String(c);
}
我弄出这方法的主要原因是我想去掉首尾的空格,但是直接trim()我没去掉,所以才想到将全角转为半角之后再去使用那些方法,如果有哪位大神能够有其他思路或方法的,也请发表一下您的见解,让小六也涨涨见识,小六在这里谢过了
转载于:https://blog.51cto.com/glgordon1993/1257983