ASCII简介
ASCII,英文全称是American Standard Code for Information Interchange,中文名称就是美国信息互换标准代码,他是基于拉丁字母的一套电脑编码系统。ASCII码表主要用于显示现代英语和其他西欧语言。
相对应编码
/**
* 普通的英文半角空格Unicode编码
*/
private static final int SPACE_32 = 32;
/**
* 中文全角空格Unicode编码(一个中文宽度)
*/
private static final int SPACE_12288 = 12288;
/**
* 普通的英文半角空格但不换行Unicode编码(== ==   == no-break space)
*/
private static final int SPACE_160 = 160;
/**
* 半个中文宽度(==   == en空格)
*/
private static final int SPACE_8194 = 8194;
/**
* 一个中文宽度(==   == em空格)
*/
private static final int SPACE_8195 = 8195;
/**
* 四分之一中文宽度(四分之一em空格)
*/
private static final int SPACE_8197 = 8197;
/**
* 窄空格
*/
private static final int SPACE_8201 = 8201;
/**
* 换行
*/
private static final int LINE_10 = 10;
/**
* 回车
*/
private static final int ENTER_13 = 13;
/**
* 是否是空格
*
* @param c
* @return
*/
private static boolean isSpace(char c) {
return c == SPACE_32 || c == SPACE_12288 || c == SPACE_160 || c == SPACE_8194
|| c == SPACE_8195 || c == SPACE_8197 || c == SPACE_8201;
}
/**
* 去掉字符串前后空格
*
* @param str
* @return
*/
public static String trim(String str) {
if (isEmpty(str)) {
return str;
}
int len = str.length();
int st = 0;
//这里没把换行和回车写到isSpace方法中是因为将其分开 isSpace可以单独使用去判断空格
while ((st < len) && (isSpace(str.charAt(st)) || str.charAt(st) == LINE_10 || str.charAt(st) == ENTER_13)) {
st++;
}
while ((st < len) && (isSpace(str.charAt(len - 1)) || str.charAt(len - 1) == LINE_10 || str.charAt(len - 1) == ENTER_13)) {
len--;
}
return ((st > 0) || (len < str.length())) ? str.substring(st, len) : str;
}