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