首尾空格去掉,全角转半角,中文标点符号转英文工具类
@Component
public class DbcUtil {
/**
* 字符转换
*
* @param input string字符串
* @return string
*/
public String toDbc(String input) {
input = input.trim();
char[] c = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == Const.CACHE_SIZE_TWO) {
//全角空格为12288,半角空格为32
c[i] = (char) Const.THIRTY_TWO;
continue;
}
if (c[i] > Const.CACHE_SIZE_THREE && c[i] < Const.CACHE_SIZE_FOUR) {
//其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
c[i] = (char) (c[i] - Const.CACHE_SIZE_FIVE);
}
}
String result = new String(c);
result = result.replaceAll("[' ']+", " ");
result = cToe(result);
return result;
}
/**
* 字符转换
* @param str string字符串
* @return string
*/
private String cToe(String str) {
String[] regs = {"!", ",", "。", ";", "~", "《", "》", "(", ")", "?",
"”", "{", "}", "“", ":", "【", "】", "”", "‘", "’", "!", ",",
".", ";", "`", "<", ">", "(", ")", "?", "'", "{", "}", "\"",
":", "{", "}", "\"", "\'", "\'"};
for (int i = 0; i < regs.length / Const.TWO; i++) {
str = str.replaceAll(regs[i], regs[i + regs.length / 2]);
}
return str;
}