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("-", "");
}
}