java工具类之字符串工具类

/**
 * 字符串工具类
 * 
 * @author zql
 */
public class StringUtil {
	
	/**
	 * <p>
	 * 格式化字符串</br>
	 * 例1:formateString("xxx{0}bbb",1) = xxx1bbb</br>
	 * 例2:formateString("aaa{0}bbb{1}ccc{2}ddd{2}eee","9","5","100") = aaa9bbb5ccc100ddd100eee
	 * </p>
	 * 
	 * @param str 格式化的字符串
	 * @param params 字符串参数
	 * @return 格式化之后的字符串
	 */
	public final static String formateString(String str, String... params) {
		for (int i = 0; i < params.length; i++) {
			str = str.replace("{" + i + "}", params[i] == null ? "" : params[i]);
		}
		return str;
	}
	
	/**
	 * 清空所有的全角和半角空格
	 * 
	 * @param ori 要清空空格符的字符串
	 * @return
	 */
	public final static String clearSpace(String ori) {
		// 替换所有半角空格
		ori = ori.replaceAll("\\s+", "");
		// 替换所有全角空格,即输入法为中文状态下打的空格
		ori = ori.replaceAll("\\p{Zs}", "");
		return ori;
	}
	
	/**
	 * 首字母转大写其他不变
	 * 
	 * @param str 字符串
	 * @return 首字母转大写后的字符串
	 */
	public final static String firstToBig(String str) {
		String firstStr = String.valueOf(str.charAt(0)).toUpperCase();
		return firstStr + str.substring(1);
	}
	
	/**
	 * 循环拼接字符串
	 * 
	 * @param str 字符串
	 * @param times 拼接的次数
	 * @return 拼接后的字符串
	 */
	public final static String getLoopSpellOn(String str, int times) {
		StringBuffer sb = new StringBuffer();
		if (times <= 0) {
			return "";
		} else {
			for (int i = 0; i < times; i++) {
				sb.append(str);
				sb.append(",");
			}
			sb.deleteCharAt(sb.length() - 1);
			return sb.toString();
		}
	}
	
	/**
	 * 获取插入sql语句
	 * 
	 * @param tableName 表名
	 * @param tableFields 字段名字符串,字段名以英文逗号隔开,例:a,b,c
	 * @return 返回 占位符方式的语句,?占位  
	 */
	public final static String getInsertSql(String tableName, String tableFields) {
		return "insert into " + tableName + " (" + tableFields + ") values (" + StringUtil.getLoopSpellOn("?", tableFields.split(",").length) + ") ";
	}
	
	/**
	 * 获取更新sql语句
	 * 
	 * @param tableName 表名
	 * @param tableFields 字段名字符串,字段名以英文逗号隔开,例:a,b,c
	 * @param where 条件字符串
	 * @return 返回 占位符方式的语句 ,?占位  
	 */
	public final static String getUpdateSql(String tableName, String tableFields, String where) {
		return "update " + tableName + " set " + getLoopSplit(tableFields.split(","), "=?") +" " + where + " ";
	}
	
	/**
	 * <p>
	 * 字符串组装</br>
	 * 例:  String tableFields = "a,b,c,d";</br>
	 *    getLoopSplit(tableFields.split(","), "c") = ac,bc,cc,dc
	 * </p>
	 * 
	 * @param split 字符串数组
	 * @param mark 要组装的字符串
	 * @return 以逗号隔开的字符串
	 */
	public final static String getLoopSplit(String[] split, String mark) {
		if (split == null || split.length <= 0) {
			return "";
		}
		if (split.length == 1) {
			return split[0] + mark;
		}
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < split.length; i++) {
			sb.append(split[i] + mark);
			sb.append(",");
		}
		sb.deleteCharAt(sb.length() - 1);
		return sb.toString();
	}

}

发布了55 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/mr_zql/article/details/100059370