gpt4 book ai didi

java - 替换字符串中的数字

转载 作者:行者123 更新时间:2023-12-01 23:39:16 24 4
gpt4 key购买 nike

我正在使用的 java 数学表达式求值器库要求十六进制数字以 0x 为前缀。表达式作为字符串传递。

字符串表达式 = "0xAE6+0x22";

但是在输入时我想输入不带 0x 的数字,然后在它们前面加上前缀。所以我想出了一个想法,使用字符串中的正则表达式提取数字,前缀 0x 并替换它。

String expr = "AE6+22";
Matcher m = Pattern.compile("[0123456789ABCDEF]{1,}").matcher(expr);
while (m.find())
expr = expr.replace(m.group(), "0x" + m.group());

我后来发现这不起作用,因为如果表达式是 45+4,它就会变成 0x0x45+0x4。如何防止重复替换重复的数字?

最佳答案

一个简单的replaceAll()就可以完成这项工作:

String expr = "AE6+22";
String regex = "([\\dA-F]+)"; // use "([\\da-fA-F]+)" to also support lowercase
String replaced = expr.replaceAll(regex, "0x$1");
System.out.println(replaced); // prints 0xAE6+0x22

关于java - 替换字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210565/

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