gpt4 book ai didi

java - Java 中的子字符串替换

转载 作者:行者123 更新时间:2023-12-02 04:50:21 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,将字符串内部的子字符串替换为这两个数组中包含的其他子字符串。

String[] A = {"kk", "pp", "tt", "k", "p", "t", "rt", "lt", "nt", "nk", "mp"};
String[] B = {"k", "p", "t", "", "v", "d", "rr", "ll", "nn", "ng", "mm"};

这个想法是,如果我有一个仅包含数组“A”之一的字符串,则用“B”中的等效项(在索引中)替换。

我尝试使用 StringBuilder 的 indexOf 但不起作用。我也尝试过一些模式,但我对正则表达式不太熟悉。您执行此操作的最佳方法是什么?

一个例子;

String s = "auttaa";
myfunction(s);

现在s =“autaa”

最佳答案

一个选项:使用

HashMap<String, String>

作为“key”,使用数组 A 中的值;相应的“值”来自数组 B。(或者正如其他人指出的:如果顺序相关,则为 LinkedHashMap)

然后迭代 HashMap ;并使用 replaceAll 将所有出现的 hashmap.key 替换为 hashmap.value。 (http://www.tutorialspoint.com/java/java_string_replaceall.htm)

通过这样做,您可以接受更改,例如添加/删除替换规则。

使用映射(相对于使用两个数组)的另一个优点是,模式和替换“耦合性更强”。当使用两个数组时,总是存在一定的风险,即由于某些愚蠢的原因,数组在某些时候最终会具有不同的长度。当然,只有在运行时才可见。但是,当您总是成对指定规则时……那么您就无法使用比替换更多的模式。

使用 HashMap 还可以非常轻松地更改模式/替换规则(只需提供具有其他条目的不同映射)。

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

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