gpt4 book ai didi

java - 用正则表达式按索引将一个字符替换为其他字符?

转载 作者:行者123 更新时间:2023-12-02 07:08:24 28 4
gpt4 key购买 nike

可以使用匹配索引中的特定字符替换java中字符串中的字符。

例如:

我想使用一些特定的 map :

a=d、b=e、c=f

然后:a 想要用 d 替换 a,用 e 替换 b,用 f 替换 c。

这是代码的思路:

    String src = "text_abc";
String regex = "a|b|c";
String replacement = "d|e|f";
String replaced = src.replace(regex, replacement);

我不知道应该在正则表达式中使用什么正则表达式并替换它。

最佳答案

您可以使用String.replace(char, char)对于本例。

String src = "text_abc";
String replaced = src.replace('a', 'd')
.replace('b', 'e')
.replace('c', 'f');

如果您坚持使用正则表达式(对于这种情况来说这是一个愚蠢的想法,它效率低下并且不必要地不可维护),您可以使用带有相应查找的 Map 进行替换:

String src = "text_abc";

// Can move these to class level for reuse.
final HashMap<String, String> map = new HashMap<>();
map.put("a", "d");
map.put("b", "e");
map.put("c", "f");
final Pattern pattern = Pattern.compile("[abc]");

String replaced = src;
Matcher matcher;
while ((matcher = pattern.matcher(replaced)).find())
replaced = matcher.replaceFirst(map.get(matcher.group()));

// System.out.println(replaced);

这是一个online code demo .

关于java - 用正则表达式按索引将一个字符替换为其他字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839015/

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