gpt4 book ai didi

java - HashMap 键比较

转载 作者:行者123 更新时间:2023-12-01 09:43:41 26 4
gpt4 key购买 nike

我通过读取输入文件中的特定部分来制作 HashMap 。然而,输入文件没有标准的缩进格式,即有些行以 # 字符开头,而有些行则不然。我应该从文件中捕获键和值。这是我的代码:

String schedule = "config [\"Sql\"] = \\";
Scanner scanner = new Scanner(f1);
while (scanner.hasNext()) {

sCurrentLine = scanner.nextLine();

if (sCurrentLine.contains(schedule)) {
System.out.println(f1.getFileName()+" Contains a schedule");
scheduleFlag = true;
}
else if(sCurrentLine.contains("config [")) {
scheduleFlag = false;
}
if(sCurrentLine.trim().startsWith("(") && sCurrentLine.trim().endsWith(",") && scheduleFlag == true) {
scheduleName = sCurrentLine;
scheduleName = scheduleName.substring(scheduleName.indexOf('"')+1, scheduleName.lastIndexOf('"'));
//writer.write(scheduleName);
out.write(scheduleName.getBytes());
HashMapping = true;

}
if(scheduleFlag == true && HashMapping == true) {
String [] values = sCurrentLine.split(":");

if (values.length < 2);
else {
hm.put(values[0], values[1]);
}
}

这是输入文件的一部分:

#config ["Sql"] = \
#[
# ("KB",
# {
# "subsystem": "DMN",
# "enabled": "0",
# "freqtype": "4",
}

我只想在我的 key 中包含双引号的字符串,忽略 # 字符(它可能存在也可能不存在于给定文件中)。有什么办法吗?

最佳答案

搜索正则表达式的匹配项,例如

"[^"]*"

您可以通过以下方式迭代引号中的元素:

Pattern p = Pattern.compile("\"[^\"]*\"");
Matcher matcher = p.matcher(yourInputString);

while (matcher.find())
{
//do something with the match

}

关于java - HashMap 键比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38244755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com