package com.landtool.lanbase.common.utils;
|
|
public class CommonUtils {
|
public static String subStringUtils(String str, int end) {
|
int length = 0;
|
char[] ch = str.toCharArray();
|
String str2 = "";
|
for (int i = 0; i < str.length(); i++) {
|
int num = str.codePointAt(i);
|
if (num >= 0 && num <= 255) {
|
length++;
|
} else {
|
length += 2;
|
}
|
if (length < end) {
|
str2 += ch[i];
|
} else if (length == end) {
|
str2 += ch[i];
|
if (i < str.length() - 1) {
|
str2 += "...";
|
}
|
break;
|
} else {
|
break;
|
}
|
|
}
|
return str2;
|
}
|
|
/**
|
* 中文转Unicode
|
* @param gbString 转换中文字符串
|
* @return 转换后Unicode
|
*/
|
public static String gbEncoding(final String gbString) {
|
char[] utfBytes = gbString.toCharArray();
|
String unicodeBytes = "";
|
for(int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
|
String hexB = Integer.toHexString(utfBytes[byteIndex]);//转换为16进制整型字符串
|
if(hexB.length() <= 2) {
|
hexB = "00" + hexB;
|
}
|
unicodeBytes = unicodeBytes + "\\u" + hexB;
|
}
|
|
return unicodeBytes;
|
}
|
|
/**
|
* Unicode转中文
|
* @param dataStr Unicode字符串
|
* @return 转换后中文
|
*/
|
public static String decodeUnicode(final String dataStr) {
|
int start = 0;
|
int end = 0;
|
final StringBuffer buffer = new StringBuffer();
|
while (start > -1){
|
end = dataStr.indexOf("\\u", start + 2);
|
String charStr = "";
|
if(end == -1) {
|
charStr = dataStr.substring(start +2, dataStr.length());
|
} else {
|
charStr = dataStr.substring(start + 2, end);
|
}
|
char letter = (char) Integer.parseInt(charStr, 16);
|
buffer.append(new Character(letter).toString());
|
start = end;
|
}
|
|
return buffer.toString();
|
}
|
}
|