gpt4 book ai didi

java - 格式化 LinkedHashMap

转载 作者:行者123 更新时间:2023-12-01 16:44:55 30 4
gpt4 key购买 nike

我正在尝试重新格式化 LinkedHashMap 的输出以排除逗号和大括号。

这是我的看跌期权:

token.put("[Server.Protocol]", url.getProtocol() + "\n");
token.put("[Server.hostName]", url.getHost() + "\n");
token.put("[Server.Port]", url.getPort() + "\n");
values.add(token.toString());

token 是我的 LinkedHashMap,values 是我的 LinkedList。

这是我的输出:

{[Server.Protocol]=https
, [Server.Name]=myserver
, [Server.Port.HTTPS]=123
}

这是我想要的:

[Server.Protocol]=https
[Server.hostName]=myserver
[Server.Port]=123

这是我的打印方法:

private void webconfigToINI() throws IOException {
File fout = new File(propFile);

try {
FileOutputStream fos = new FileOutputStream(fout, true /* append */);

writer = new PrintWriter(fos);
if (fos.getChannel().size() == 0)
writer.print("[Code]\n");
for (String value : values) {
//writer.print(value.substring(1, value.length()-1));
writer.print(value);
}
// writer.print("[Code]\n");
writer.flush();
writer.close();
fos.close();
} catch (Exception e) {
throw e;
}
}

最佳答案

这里:

values.add(token.toString());

您正在 map 对象上调用toString()。这将调用 AbstractMap 中实现的 toString()基类。该方法迭代条目,并在其条目周围添加 { } 大括号。

因此,简单的答案:不要调用该方法!

相反,您可以迭代 entrySet()手动创建 map 对象,提取键、值并将其写入文件中。

除此之外:您首先需要那张 map 吗?如果 token 仅用于调用 toString() 来获取这些字符串...那么使用 StringBuilder 会更有效。只需将您的字符串插入该构建器,并最终使用它即可。

关于java - 格式化 LinkedHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633909/

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