package com.moral.util;
|
|
import java.util.regex.Pattern;
|
|
public class StringUtils {
|
public static boolean isEmpty(Object str) {
|
return str == null || "".equals(str);
|
}
|
/**
|
* 字符长度控制,中文算1个字符
|
* @param str
|
* @param maxLength
|
* @return
|
*/
|
public static String subString(final String str, final int maxLength) {
|
if (isEmpty(str)) {
|
return "";
|
}
|
int len = str.length();
|
if(len<maxLength){
|
return str;
|
}
|
return str.substring(0,maxLength-4)+"...";
|
}
|
/**
|
* 中英文字符长度控制,中文算2个字符
|
* @param str
|
* @param maxLength
|
* @return
|
*/
|
public static String subStringCN(final String str, final int maxLength) {
|
if (str == null) {
|
return "";
|
}
|
String suffix = "...";
|
int suffixLen = suffix.length();
|
|
final StringBuffer sbuffer = new StringBuffer();
|
final char[] chr = str.trim().toCharArray();
|
int len = 0;
|
for (int i = 0; i < chr.length; i++) {
|
|
if (chr[i] >= 0xa1) {
|
len += 2;
|
} else {
|
len++;
|
}
|
}
|
|
if(len<=maxLength){
|
return str;
|
}
|
|
len = 0;
|
for (int i = 0; i < chr.length; i++) {
|
|
if (chr[i] >= 0xa1) {
|
len += 2;
|
if (len + suffixLen > maxLength) {
|
break;
|
}else {
|
sbuffer.append(chr[i]);
|
}
|
} else {
|
len++;
|
if (len + suffixLen > maxLength) {
|
break;
|
}else {
|
sbuffer.append(chr[i]);
|
}
|
}
|
}
|
sbuffer.append(suffix);
|
return sbuffer.toString();
|
}
|
|
public static boolean isNumber(String str) {
|
String regex = "[-\\+]?\\d*+.?\\d*";
|
return Pattern.matches(regex, str);
|
}
|
|
}
|