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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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();
    }
}