字串處理類StringUtil
阿新 • • 發佈:2019-02-06
/*
*字串處理類
*/
public class StringUtil {
/*
*判斷物件是否為空
*/
public static boolean isEmpty(Object s) {
if (s == null || "".equals(s)) {
return true;
}
return false;
}
/*
*判斷物件是否不為空
*/
public static boolean isNotEmpty (Object s) {
if (s == null || "".equals(s)) {
return false;
}
return true;
}
/*
*拼接字串
*arr : 字串陣列
*split :分隔符
*suffix:字串外包裝字元
*/
public static String join(String[] arr,String split,String suffix) {
StringBuffer buffer = new StringBuffer("");
for (String s : arr) {
buffer.append(suffix);
buffer.append(s);
buffer.append(suffix);
buffer.append(split);
}
if (buffer.length() > 0) {
//刪除某個指定下標的字元
buffer.deleteCharAt(buffer.length() - 1 );
}
return buffer.toString();
}
/*
*拼接字串
*lst : 字串集合
*split :分隔符
*suffix:字串外包裝字元
*/
public static String join(List<String> lst,String split,String suffix) {
StringBuffer buffer = new StringBuffer("");
for (String s : lst) {
buffer.append(suffix);
buffer.append(s);
buffer.append(suffix);
buffer.append(split);
}
if (buffer.length() > 0) {
buffer.deleteCharAt(buffer.length() - 1);
}
return buffer.toString();
}
/*
*字串拼接
*
*
*/
public static String join(List<String> lst,String split) {
return join(lst,split,"");
}
/*
*拼接字串
*/
public static String join(String[] arr, String split) {
return join(arr,split,"");
}
/*
*拼接字串
*/
public static String join(String arr,String splix,String suffix) {
if (arr != null) {
return join(arr.split(","),split,suffix);
} else {
return "";
}
}
/*
*判斷字串是否是數值
*/
public static boolean isNumber(String str) {
Pattern pattern = Pattern.complie("^[0-9]+(.[0-9]*)?$");
Matcher match = pattern.matcher(str);
return match.matches();
}
/*
*根據長度擷取字串
*/
public static String subStringEx(String data,int len,String prefix) {
if (data == null || "".equals(data)) {
return null;
}
String afterfix = "...";
try {
//使用GBK字元編碼轉成位元組碼
byte[] bytes = data.getBytes("GBK");
StringBuilder sb = new StringBuilder();
if (prefix != null && !"".equals(prefix)) {
//在擷取長度中去掉字首的長度
len -= prefix.getBytes("GBK").length;
//存取字首
sb.append(prefix);
}
if (bytes.length <= len) {
//當字串長度小於擷取長度,則將原本的字串拼接進去
sb.append(data);
} else {
//如果字串長度大於擷取長度,則有部分資料要處理
//擷取長度去除字尾長度
len -= afterfix.getBytes("GBK").length;
if (bytes[len] < 0) {
//如果當前長度的位元組為空,則將擷取長度前移
//如果前一個還為空?怎麼辦?
//如果前一個可以為空,那麼這一步存在的意義?
//如果想要獲得它的最後一個位元組,為什麼不用bytes.length-1?
len --;
}
//以GBK編碼構建原位元組陣列的指定長度
String s = new String(bytes,0,len,"GBK");
//將新字串拼接到返回結果中
sb.append(s);
//拼接字尾
sb.append(afterfix);
}
//如果不發生異常,則直接將結果返回
return sb.toString();
} catch (Exception e) {
//出現異常,直接返回空
return "";
}
}
/*
*in 條件查詢時拼接問號和引數
*/
public static String inParamToQuestionMarkAndParam(String parameters,List<Object> paramList) {
StringBuffer sb = new StringBuffer();
for (String parameter : parameters.split(",")) {
sb.append("?,");
paramList.add(parameter);
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
}