package com.wondertek.oes.live.commons.util;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtil1 {
private StringUtil1() {
}
/**
* 判断参数是否为空
*
* @param strin
* @return
*/
public static boolean isNullStr(Object strin) {
if (strin == null) {
return true;
}
String str = strin.toString();
boolean flag = false;
if ("null".equals(str) || "".equals(str) || "".equals(str.trim())) {
flag = true;
}
return flag;
}
/**
* 去除参数中的空格
*
* @param strin
* @return
*/
public static String trim(String strin) {
if (isNullStr(strin)) {
return null;
}
return strin.trim();
}
/**
* 首字母转小写
*
* @param s
* @return
*/
public static String toLowerCaseFirstOne(String s) {
if (Character.isLowerCase(s.charAt(0))) {
return s;
} else {
return Character.toLowerCase(s.charAt(0)) + s.substring(1);
}
}
/**
* 首字母转大写
*
* @param s
* @return
*/
public static String toUpperCaseFirstOne(String s) {
if (Character.isUpperCase(s.charAt(0))) {
return s;
} else {
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
}
}
/**
* 得到一个String值的指定长度的字符串形式
* NOTE: 不足的前面添'0'
*
* @param s
* @param len
* @param cutHead 当s的长度大于len时,截取方式:true,截掉头部;否则从截掉尾部
* 例如getStringByAppointLen("12345",3,true) ---> "345"
* @return
*/
public static String getStringByAppointLen(String s, int len, boolean cutHead) {
if (s == null || len <= 0) {
s = "";
}
if (len > s.length()) {
int size = len - s.length();
StringBuilder sb = new StringBuilder();
while (size-- > 0) {
sb.append("0");
}
sb.append(s);
return sb.toString();
} else if (len == s.length()) {
return s;
} else {
if (cutHead) {
return s.substring(s.length() - len, s.length());
} else {
return s.substring(0, len);
}
}
}
/**
* 得到一个Long值的指定长度的字符串形式
*
* @param l
* @param len
* @return
*/
public static String getStringByAppointLen(String l, int len) {
return getStringByAppointLen(l, len, true);
}
/**
* 通过ID生成存储路径
*
* @param id
* @return
*/
public static String getFileDirPathById(String dmId) {
String s = StringUtil1.getStringByAppointLen(dmId, 19);
StringBuilder sb = new StringBuilder();
sb.append(s, 0, 5).append("/")
.append(s, 5, 11).append("/")
.append(s, 11, 15).append("/")
.append(s, 15, 19).append("/");
return sb.toString();
}
/**
* 逗号分隔的字符串去重
*/
public static String getNoRepeatString(String s) {
if (isNullStr(s)) {
return null;
}
String[] split = s.split("\\,");
Set<String> set = new HashSet<>(Arrays.asList(split));
int i = 1;
StringBuilder sb = new StringBuilder();
for (String str : set) {
if (i == 1) {
sb.append(str);
} else {
sb.append(",").append(str);
}
i++;
}
return sb.toString();
}
/**
* 去除字符串中的空格、回车、换行符、制表符
*
* @param str
* @return
*/
public static String replaceBlank(String str) {
String dest = "";
if (str != null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
}
Java8中关于String参数操作笔记
最新推荐文章于 2023-05-09 11:18:57 发布