Java全半角转换
http://blog.csdn.net/bbirdsky/article/details/12090321
全角转半角规则:
1、全角空格为12288,半角空格为32特殊处理;
2、其他字符半角(33-126)与全角(65281-65374)的对应关系是相差65248。
Java全半角转换代码:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
Java代码 /** * StringUtils * * @author tongqian.zhang */ public class StringUtils { /** * 判断字符串是否为空或空字符串 * @param str 原字符串 * @return */ public static boolean isEmpty(String str) { return str == null || "".equals(str); } /** * 全角转半角: * @param fullStr * @return */ public static final String full2Half(String fullStr) { if(isEmpty(fullStr)){ return fullStr; } char[] c = fullStr.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] >= 65281 && c[i] <= 65374) { c[i] = (char) (c[i] - 65248); } else if (c[i] == 12288) { // 空格 c[i] = (char) 32; } } return new String(c); } /** * 半角转全角 * @param halfStr * @return */ public static final String half2Full(String halfStr) { if(isEmpty(halfStr)){ return halfStr; } char[] c = halfStr.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 32) { c[i] = (char) 12288; } else if (c[i] < 127) { c[i] = (char) (c[i] + 65248); } } return new String(c); } } |
