gpt4 book ai didi

java - 动态替换某些字符串值

转载 作者:行者123 更新时间:2023-11-30 06:28:19 24 4
gpt4 key购买 nike

我有一个HashMap<Integer, Double>看起来类似这样:{260=223.118,50、261=1889,00、262=305,70、270=308,00}

我从数据库中获取一个看起来像这样的字符串:字符串结果=“(260+261)-(262+270)”;

我想用这些值更改字符串的值 260、261、262...(它们始终与 HashMap 的键相同),这样我可以获得如下字符串:String finRes = "(223.118,50+1889,00)-(305,70+308,00)";

字符串结果还可以包含乘法和除法字符。

最佳答案

这里的一个简单的正则表达式解决方案是将您的输入字符串与模式 (\d+) 进行匹配。这应该产生算术字符串中的所有整数。然后,我们可以在映射中查找每个匹配项,并将其转换为整数,以获得相应的 double 值。由于所需的输出再次是字符串,因此我们必须将 double 转换回字符串。

Map<Integer, Double> map = new HashMap<>();
map.put(260, 223.118);
map.put(261, 1889.00);
map.put(262, 305.70);
map.put(270, 308.00);

String input = "(260+261)-(262+270)";
String result = input;
String pattern = "(\\d+)";

Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
StringBuffer sb = new StringBuffer();

while (m.find()) {
m.appendReplacement(sb, String.valueOf(map.get(Integer.parseInt(m.group(1)))));
}
m.appendTail(sb);
System.out.println(sb.toString());

输出:

(223.118+1889.0)-(305.7+308.0)

此处演示:

Rextester

关于java - 动态替换某些字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46650836/

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