/**
* <h1>根据表达式格式化字符串</h1>
* @param oldString
* @param open
* @param close
* @param stringParamMap
* @param stringParams
* @return java.lang.String
* @date 2020/7/30 20:31
* @author dengyw
*/
public final static String formatString(String oldString, String open, String close, Map<String, Object> stringParamMap, Object... stringParams){
if(ObjectUtils.isBlankString(oldString)
|| ObjectUtils.isBlankString(open)
|| ObjectUtils.isBlankString(close)){
return oldString;
}
StringBuilder stringBuilder = new StringBuilder();
int stringParamIndex = 0;
int openIndex = oldString.indexOf(open);
int closeIndex = oldString.indexOf(close);
while (openIndex > 0 && closeIndex > 0){
String startString = oldString.substring(0, openIndex);
stringBuilder.append(startString);
String format = oldString.substring(openIndex + open.length(), closeIndex);
Object value = null;
if(ObjectUtils.isBlankString(format)){
if(stringParamIndex < stringParams.length){
value = stringParams[stringParamIndex];
}
stringParamIndex++;
} else {
if(ObjectUtils.isNotBlankMap(stringParamMap)){
value = stringParamMap.get(format.trim());
}
}
if (ObjectUtils.isNull(value)) {
value = oldString.substring(openIndex, closeIndex + close.length());
} else {
if(value instanceof Class){
value = ((Class)value).getName();
}
}
stringBuilder.append(value);
oldString = oldString.substring(closeIndex + 1);
openIndex = oldString.indexOf(open);
closeIndex = oldString.indexOf(close);
}
if(ObjectUtils.isNotNull(oldString)){
stringBuilder.append(oldString);
}
return stringBuilder.toString();
}
根据表达式格式化字符串
最新推荐文章于 2023-04-09 20:29:54 发布