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();
|
}
|
}
|