mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
add assgin
This commit is contained in:
parent
d3fff05b95
commit
7174b49906
@ -16,6 +16,7 @@
|
||||
* 【dfa】 优化特殊字符构建,优化查找,改为使用StrBuilder
|
||||
* 【core】 ZipUtil增加FileFilter参数的重载,支持文件过滤(issue#I11RTP@Gitee)
|
||||
* 【http】 HttpRequest增加setChunkedStreamingMode方法(issue#525@Github)
|
||||
* 【setting】 SettingLoader支持自定义分隔符
|
||||
|
||||
### Bug修复
|
||||
* 【core】 修复NetUtil.getUsableLocalPort问题(pr#69@Gitee)
|
||||
|
@ -34,9 +34,9 @@ public class SettingLoader {
|
||||
/** 注释符号(当有此符号在行首,表示此行为注释) */
|
||||
private final static char COMMENT_FLAG_PRE = '#';
|
||||
/** 赋值分隔符(用于分隔键值对) */
|
||||
private final static char ASSIGN_FLAG = '=';
|
||||
private char assignFlag = '=';
|
||||
/** 变量名称的正则 */
|
||||
private String reg_var = "\\$\\{(.*?)\\}";
|
||||
private String varRegex = "\\$\\{(.*?)\\}";
|
||||
|
||||
/** 本设置对象的字符集 */
|
||||
private Charset charset;
|
||||
@ -124,7 +124,7 @@ public class SettingLoader {
|
||||
continue;
|
||||
}
|
||||
|
||||
final String[] keyValue = StrUtil.splitToArray(line, ASSIGN_FLAG, 2);
|
||||
final String[] keyValue = StrUtil.splitToArray(line, this.assignFlag, 2);
|
||||
// 跳过不符合键值规范的行
|
||||
if (keyValue.length < 2) {
|
||||
continue;
|
||||
@ -150,7 +150,17 @@ public class SettingLoader {
|
||||
* @param regex 正则
|
||||
*/
|
||||
public void setVarRegex(String regex) {
|
||||
this.reg_var = regex;
|
||||
this.varRegex = regex;
|
||||
}
|
||||
|
||||
/**
|
||||
* 赋值分隔符(用于分隔键值对)
|
||||
*
|
||||
* @param regex 正则
|
||||
* @since 4.6.5
|
||||
*/
|
||||
public void setAssignFlag(char assignFlag) {
|
||||
this.assignFlag = assignFlag;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -181,7 +191,7 @@ public class SettingLoader {
|
||||
for (Entry<String, LinkedHashMap<String, String>> groupEntry : this.groupedMap.entrySet()) {
|
||||
writer.println(StrUtil.format("{}{}{}", CharUtil.BRACKET_START, groupEntry.getKey(), CharUtil.BRACKET_END));
|
||||
for (Entry<String, String> entry : groupEntry.getValue().entrySet()) {
|
||||
writer.println(StrUtil.format("{} {} {}", entry.getKey(), ASSIGN_FLAG, entry.getValue()));
|
||||
writer.println(StrUtil.format("{} {} {}", entry.getKey(), this.assignFlag, entry.getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -196,10 +206,10 @@ public class SettingLoader {
|
||||
*/
|
||||
private String replaceVar(String group, String value) {
|
||||
// 找到所有变量标识
|
||||
final Set<String> vars = ReUtil.findAll(reg_var, value, 0, new HashSet<String>());
|
||||
final Set<String> vars = ReUtil.findAll(varRegex, value, 0, new HashSet<String>());
|
||||
String key;
|
||||
for (String var : vars) {
|
||||
key = ReUtil.get(reg_var, var, 1);
|
||||
key = ReUtil.get(varRegex, var, 1);
|
||||
if (StrUtil.isNotBlank(key)) {
|
||||
// 本分组中查找变量名对应的值
|
||||
String varValue = this.groupedMap.get(group, key);
|
||||
@ -211,7 +221,7 @@ public class SettingLoader {
|
||||
}
|
||||
}
|
||||
// 系统参数中查找
|
||||
if(null == varValue) {
|
||||
if (null == varValue) {
|
||||
varValue = System.getProperty(key);
|
||||
}
|
||||
if (null != varValue) {
|
||||
|
Loading…
Reference in New Issue
Block a user