package com.vci.common.utility; /** * 字符转换器 * @author Administrator * */ public class Converter { /** * 将输入的字符串转换为全角 * @param input 全角字符串 * @return 转换为半角后的字符串 */ public static String toQJString(String input){ return toQJString(input, true); } /** * 将输入的字符串转换为全角 * @param input 全角字符串 * @param flag 如果是TM等特殊字符,是否需要进行特殊处理 true:需要 false:不需要 * @return 转换为半角后的字符串 */ public static String toQJString(String input, boolean flag){ String result = ""; char[] str = input.toCharArray(); for (int i = 0; i < str.length; i++) { int code = str[i];// 获取当前字符的unicode编码 if (code >= 65281 && code <= 65373)// 在这个unicode编码范围中的是所有的英文字母以及各种字符 { result += (char) (str[i] - 65248);// 把全角字符的unicode编码转换为对应半角字符的unicode码 } else if (code == 12288)// 空格 { result += (char) (str[i] - 12288 + 32); } else if (code == 65377) { result += (char) (12290); } else if (code == 12539) { result += (char) (183); } else if (code == 8482 && flag == true) {// 如果是特殊字符TM 并且是需要转换的所作操作 } else if (code == 8226) { // 特殊字符 ‘·’的转化 result += (char) (183); } else { result += str[i]; } } return result; } // public static String toBString(String text){ // String res = ""; // return res; // } public static void main(String[] args){ String text = "" + " ~!@#¥%……&×()——+" + " ·1234567890-=" + "qwertyuiop" + "asdfghjkl" + "zxcvbnm" + "[]\;',./?【】中文全角‘’"; String text2 = "" + "~!@#$%^&*()_+" + " ·1234567890-=" + "qwertyuiop" + "asdfghjkl" + "zxcvbnm" + "[]\\;',./?【】中文半角''"; String text3 = toQJString(text2, true); boolean equals = text3.equals(text2); System.out.println("全角值1:" + text); System.out.println("半角值2:" + text2); System.out.println("半角值3:" + text3); System.out.println("比较值:" + equals); System.out.println(); } }