Java字符串工具类
1、判断字符串是否为空
2、将数组对象用间隔符flag拼接起来(flag可以自定义)
3、对象是否为null或空白字符串
4、转换为Boolean,如果原值为空,则返回空
5、转换为Boolean。如果原值为空,则返回false
6、转换为Integer,如果原值为空,则返回空
7、字符串是否为正整数
8、字符串格式化. 支持 {0},{1} 的patten
代码:
/**
* 字符串工具类
*/
public class StringUtils {
/**
* 判断字符串是否为空
* @param str
* @return true 不为空 false 空
*/
public static boolean notNull(String str) {
if ((null != str) && (!"".equals(str.trim()))) {
return true;
}
return false;
}
/**
* 将数组对象用间隔符flag拼接起来
* @param o
* @return true 不为空 false 空
*/
public static String join( Object[] o , String flag ){
StringBuffer str_buff = new StringBuffer();
for(int i=0 , len=o.length ; i<len ; i++){
str_buff.append( String.valueOf( o[i] ) );
if(i<len-1)str_buff.append( flag );
}
return str_buff.toString();
}
/**
* 对象是否为null或空白字符串
* @param string
* @return
*/
public static boolean isBlank(Object string) {
if (string == null) {
return true;
} else if (string.toString().trim().equals("")) {
return true;
} else {
return false;
}
}
/**
* 转换为Boolean,如果原值为空,则返回空
* @param obj
* @return
*/
public static Boolean parseBoolean(Object obj) {
if (isBlank(obj)) {
return null;
} else {
return Boolean.parseBoolean(obj.toString());
}
}
/**
* 转换为Boolean。如果原值为空,则返回false
* @param obj
* @return
*/
public static Boolean parseBooleanReturnFalseIfNull(Object obj) {
if (isBlank(obj)) {
return false;
} else {
return Boolean.parseBoolean(obj.toString());
}
}
/**
* 转换为Integer,如果原值为空,则返回空
* @param obj
* @return
*/
public static Integer parseInteger(Object obj) {
if (isBlank(obj)) {
return null;
} else {
return Integer.parseInt(obj.toString());
}
}
/**
* 字符串是否为正整数
* @param string
* @return
*/
public static boolean isNumber(String string) {
if (isBlank(string)) {
return false;
}
for (Character c : string.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
/**
* 字符串格式化. 支持 {0},{1} 的patten
* @param str
* @param args
* @return
*/
public static String format(String str, Object... args) {
Pattern patten = Pattern.compile("\\{\\d+\\}");
Matcher matcher = patten.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String pos = matcher.group();
String indexString = pos.substring(1, pos.length() - 1);
Integer index = Integer.parseInt(indexString);
// 判断参数索引是否存在
if (index >= args.length) {
throw new RuntimeException("在位置" + pos + "找不到参数数组对应索引的值。原始语句为:" + str);
}
matcher.appendReplacement(sb, toString(args[index]));
}
matcher.appendTail(sb);
return sb.toString();
}
}