1. 字符串的工具类
1.1 判断字符为null 或者 “”(空字符串)
public static boolean isNull(String str) {
if (null==str) {
return true;
} else {
return str.trim().length() == 0 || "".equals(str);
}
}
1.2 字符串右加空格符
public static String addRightSpace(String str, int length) {
int str_length = str.length();
for(int i = 0; i < length - str_length; ++i) {
str = str + ' ';
}
return str;
}
1.3 字符串左加零
public static String addLeftZero(String str, int length) {
if (str == null) {
str = "";
}
int str_length = str.length();
for(int i = 0; i < length - str_length; ++i) {
str = '0' + str;
}
return str;
}
1.4 字符串右加零
public static String addRightZero(String str, int length) {
if (str == null) {
str = "";
}
int str_length = str.length();
for(int i = 0; i < length - str_length; ++i) {
str = str + '0';
}
return str;
}
1.5 十六进制字符串转字节
public static byte[] hexStringToBytes(String src) {
byte[] ret = new byte[src.length() / 2];
byte[] tmp = src.getBytes();
for(int i = 0; i < src.length() / 2; ++i) {
ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
}
return ret;
}
1.6 字节转十六进制字符串
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src != null && src.length > 0) {
for(int i = 0; i < src.length; ++i) {
int v = src[i] & 255;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
} else {
return "";
}
}
1.7 字符串的高低位翻转
public static String reverseString(String str) throws Exception {
String sRet = "";
int len = str.length();
if (len % 2 == 1) {
str = "0" + str;
++len;
}
for(int i = 0; i < len / 2; ++i) {
sRet = sRet + str.substring(len - 2 - i * 2, len - i * 2);
}
return sRet;
}
1.8 字节右加空格
public static String addRightSpaceForBytes(String str, String charset, int length) throws UnsupportedEncodingException {
if (str == null) {
str = "";
}
byte[] strBytes = str.getBytes(charset);
int str_length = strBytes.length;
for(int i = 0; i < length - str_length; ++i) {
str = str + ' ';
}
return str;
}
1.9 获取时间格式的字符串
public static String getRandomFromTime(int len, int numberflag) throws Exception {
Random r = new Random();
String rad = DateUtil.getSystemDateTime("yyyyMMddHHmmssSSS");
for(int i = 17; i < len; ++i) {
int l = r.nextInt(2);
if (numberflag != 0 && (numberflag != 1 || l != 0)) {
char d = (char)((int)(65.0D + Math.random() * 26.0D));
rad = rad + String.valueOf(d);
} else {
int x = r.nextInt(9);
rad = rad + Integer.toString(x);
}
}
return rad;
}
测试结果如下:(未完待续)
public static void main(String[] args) throws Exception {
System.out.println(StringUtil.isNull("12"));//false
System.out.println(StringUtil.isNull(""));//true
System.out.println(StringUtil.addLeftZero("test", 8));//0000test:8指加0后的总长度
System.out.println(StringUtil.reverseString("test"));//stte:test看成 te st转过来就是st te
System.out.println(StringUtil.getRandomFromTime(20, 0));//20200803160234636662
}