gpt4 book ai didi

java - String.replaceAll 变体

转载 作者:行者123 更新时间:2023-12-02 00:20:59 32 4
gpt4 key购买 nike

有没有一种快速方法可以用从匹配模式派生的数据替换所有出现的某些模式?

例如,如果我想将字符串中出现的所有数字替换为用 0 填充到固定长度的相同数字。

在本例中,如果长度为 4,则 ab3cd5 将变为 ab0003cd0005

我的想法是使用 StringBuilder 和 2 种模式:一种将获取所有数字,另一种将获取非数字的所有内容,并通过找到匹配项的索引将匹配项附加到构建器。

我认为可能有更简单的东西。

最佳答案

您可能可以使用 appendReplacementappendTail 实现您想要的效果,如下所示:

导入java.util.regex.Pattern;导入 java.util.regex.Matcher;

String REGEX = "(\\d+)";
String INPUT = "abc3def45";
NumberFormat formatter = new DecimalFormat("0000");

Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
StringBuffer sb = new StringBuffer();
while(m.find()){
m.appendReplacement(sb,formatter.format(Integer.parseInt(m.group(1))));
}

m.appendTail(sb);

String result = sb.toString();

关于java - String.replaceAll 变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970460/

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