更新時(shí)間:2022-12-08 11:37:51 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1910次
1.指定格式參數(shù)轉(zhuǎn)map
/**
* 將name1=value1;name2=value2形式的字符串轉(zhuǎn)化為Map<name, value>
* @param values 字符串對(duì)象
* @param keySeparator 多個(gè)鍵值對(duì)之間分隔符
* @param valueSeparator 各鍵值之間分隔符
* @return
*/
public static Map<String, String> str2Map(String values, String keySeparator, String valueSeparator) {
Map<String, String> map = new HashMap<>();
values = values == null ? "" : values;
String[] nameValues = values.split(keySeparator);
for (int i = 0; i < nameValues.length; i++) {
String[] tmp = nameValues[i].split(valueSeparator);
// 有的字段值可能為空
if (tmp.length == 2) {
map.put(tmp[0].trim(), tmp[1]);
} else {
map.put(tmp[0].trim(), "");
}
}
return map;
}
2. 字符串null則返回默認(rèn)值
/**
* @Deprecated 字符串為空則賦值默認(rèn)值
* @param str 字符串對(duì)象
* @param defaultValue 默認(rèn)值
* @return
*/
public static String nullOrDefault(String str, String defaultValue) {
return str == null ? defaultValue : str.trim();
}
3.駝峰轉(zhuǎn)下劃線
private static Pattern humpPattern = Pattern.compile("[A-Z]");
private static final String UNDERLINE = "_";
/**
* 駝峰轉(zhuǎn)下劃線
* @param str
* @return
*/
public static String camel2Underline(String str) {
if (str == null || str.equals("")) {
return "";
}
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, UNDERLINE + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
4.下劃線轉(zhuǎn)駝峰
private static Pattern linePattern = Pattern.compile("_(\\w)");
/**
* 下劃線轉(zhuǎn)駝峰
* @param str
* @return
*/
public static String underline2Camel(String str) {
if (str == null || str.equals("")) {
return "";
}
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
5. 移除右側(cè)的零
/**
* 移除右側(cè)的零
* @param str
* @return
*/
public static String removeZeroRight(String str) {
return str.replaceAll("0*$","");
}
6. 移除左側(cè)的零
/**
* 移除左側(cè)的零
* @param str
* @return
*/
public static String removeZeroLeft(String str) {
return str.replaceAll("^0*","");
}
7. 右側(cè)補(bǔ)零
/**
* 右側(cè)補(bǔ)零
* @param str
* @param n
* @return
*/
public static String addZeroRight(String str, int n) {
if (str.length() >= n) {
return str;
}
return str + String.format("%1$0" + (n - str.length()) + "d", 0);
}
8. 左側(cè)補(bǔ)零
/**
* 左側(cè)補(bǔ)零
* @param str
* @param n
* @return
*/
public static String addZeroLeft(String str, int n) {
if (str.length() >= n) {
return str;
}
return String.format("%1$0" + (n - str.length()) + "d", 0) + str;
}
9. 根據(jù)證件號(hào)獲取生日信息
/**
* 根據(jù)身份證獲取生日信息
* @param idCard 18位身份證號(hào)
* @return year-MM-dd
*/
public static String getBirthByIdCard(String idCard) {
if (isEmpty(idCard)){
return "";
}
String birth = idCard.substring(6, 10) + MIDDLELINE + idCard.substring(10, 12) + MIDDLELINE + idCard.substring(12,14);
return birth;
}
10. 根據(jù)證件號(hào)判斷是否是男性
/**
* 判斷是否是男性
* @param idCard 18位身份證號(hào)
* @return
*/
public static Boolean isManByIdCard(String idCard){
if (isEmpty(idCard)){
return null;
}
String str = String.valueOf(idCard.charAt(idCard.length() - 2));
int sexNum = Integer.valueOf(str);
return sexNum % 2 == 1;
}
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)