java實現字符串工具類-StringKit

java實現字符串工具類-StringKit


很easy,直接上代碼吧~
StringKit.java

package com.utils;

/**
 * 功能說明:字符串處理工具
 * 修改說明:
 * @author zheng
 * @date 2020年6月29日 下午3:16:48
 * @version 0.1
 */
public class StringKit {
	
	/**
	 * 功能說明:首字母變小寫
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:17:06
	 * @param str
	 * @return
	 */
	public static String firstCharToLowerCase(String str) {
		char firstChar = str.charAt(0);
		if (firstChar >= 'A' && firstChar <= 'Z') {
			char[] arr = str.toCharArray();
			arr[0] += ('a' - 'A');
			return new String(arr);
		}
		return str;
	}
	
	/**
	 * 功能說明:首字母變大寫
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:17:16
	 * @param str
	 * @return
	 */
	public static String firstCharToUpperCase(String str) {
		char firstChar = str.charAt(0);
		if (firstChar >= 'a' && firstChar <= 'z') {
			char[] arr = str.toCharArray();
			arr[0] -= ('a' - 'A');
			return new String(arr);
		}
		return str;
	}
	
	/**
	 * 功能說明:字符串爲 null 或者內部字符全部爲 ' ' '\t' '\n' '\r' 這四類字符時返回 true
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:17:27
	 * @param str
	 * @return
	 */
	public static boolean isBlank(String str) {
		if (str == null) {
			return true;
		}
		int len = str.length();
		if (len == 0) {
			return true;
		}
		for (int i = 0; i < len; i++) {
			switch (str.charAt(i)) {
			case ' ':
			case '\t':
			case '\n':
			case '\r':
			// case '\b':
			// case '\f':
				break;
			default:
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 功能說明:判斷是否爲非空字符串
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:17:49
	 * @param str
	 * @return
	 */
	public static boolean notBlank(String str) {
		return !isBlank(str);
	}
	
	/**
	 * 功能說明:判斷是否所有參數字符串是否都爲非空字符串
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:18:14
	 * @param strings
	 * @return
	 */
	public static boolean notBlank(String... strings) {
		if (strings == null) {
			return false;
		}
		for (String str : strings) {
			if (isBlank(str)) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 功能說明:判斷是否所有參數對象都不爲null
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:18:48
	 * @param paras
	 * @return
	 */
	public static boolean notNull(Object... paras) {
		if (paras == null) {
			return false;
		}
		for (Object obj : paras) {
			if (obj == null) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 功能說明:把字符串轉爲駱駝命名法
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:19:22
	 * @param stringWithUnderline
	 * @return
	 */
	public static String toCamelCase(String stringWithUnderline) {
		if (stringWithUnderline.indexOf('_') == -1) {
			return stringWithUnderline;
		}
		
		stringWithUnderline = stringWithUnderline.toLowerCase();
		char[] fromArray = stringWithUnderline.toCharArray();
		char[] toArray = new char[fromArray.length];
		int j = 0;
		for (int i=0; i<fromArray.length; i++) {
			if (fromArray[i] == '_') {
				// 當前字符爲下劃線時,將指針後移一位,將緊隨下劃線後面一個字符轉成大寫並存放
				i++;
				if (i < fromArray.length) {
					toArray[j++] = Character.toUpperCase(fromArray[i]);
				}
			}
			else {
				toArray[j++] = fromArray[i];
			}
		}
		return new String(toArray, 0, j);
	}
	
	public static String join(String[] stringArray) {
		StringBuilder sb = new StringBuilder();
		for (String s : stringArray) {
			sb.append(s);
		}
		return sb.toString();
	}
	
	/**
	 * 功能說明:把字符串數組按指定字符進行連接
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:19:47
	 * @param stringArray 字符串數組
	 * @param separator 連接字符
	 * @return 返回連接後的字符串
	 */
	public static String join(String[] stringArray, String separator) {
		StringBuilder sb = new StringBuilder();
		for (int i=0; i<stringArray.length; i++) {
			if (i > 0) {
				sb.append(separator);
			}
			sb.append(stringArray[i]);
		}
		return sb.toString();
	}
	
	/**
	 * 功能說明:判斷2個字符串對應的字節數組是否相等
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:21:23
	 * @param a
	 * @param b
	 * @return
	 */
	public static boolean slowEquals(String a, String b) {
		byte[] aBytes = (a != null ? a.getBytes() : null);
		byte[] bBytes = (b != null ? b.getBytes() : null);
		return HashKit.slowEquals(aBytes, bBytes);
	}
	
	/**
	 * 功能說明:判斷2個字符串是否相等
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:28:12
	 * @param a
	 * @param b
	 * @return
	 */
	public static boolean equals(String a, String b) {
		return a == null ? b == null : a.equals(b);
	}
	
	/**
	 * 功能說明:獲取隨機UUID
	 * 修改說明:
	 * @author zheng
	 * @date 2020年6月29日 下午3:28:35
	 * @return
	 */
	public static String getRandomUUID() {
		return java.util.UUID.randomUUID().toString().replace("-", "");
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章