gpt4 book ai didi

java - 替换所有出现的特定字符并获取所有变体

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:25 26 4
gpt4 key购买 nike

我有一个词需要用星号替换某个字符,但我需要从这个词中获取所有被替换的变体。例如。我想用星号替换字符“e”:

String word = telephone;

但要得到这个列表作为结果:

List of words = [t*lephone, tel*phone, telephon*, t*l*phone, t*lephon*, tel*phon*, t*l*phon*];

有没有在 Java 中快速完成此操作的方法?

最佳答案

以下代码将以递归方式执行此操作:

public static Set<String> getPermutations(final String string, final char c) {
final Set<String> permutations = new HashSet<>();
final int indexofChar = string.indexOf(c);
if (indexofChar <= 0) {
permutations.add(string);
} else {
final String firstPart = string.substring(0, indexofChar + 1);
final String firstPartReplaced = firstPart.replace(c, '*');
final String lastPart = string.substring(indexofChar + 1, string.length());
for (final String lastPartPerm : getPermutations(lastPart, c)) {
permutations.add(firstPart + lastPartPerm);
permutations.add(firstPartReplaced + lastPartPerm);
}
}
return permutations;
}

它将原始的 String 添加到输出中,因此:

public static void main(String[] args) {
String word = "telephone";
System.out.println(getPermutations(word, 'e'));
}

输出:

[telephone, t*lephone, tel*phone, t*l*phone, telephon*, t*lephon*, tel*phon*, t*l*phon*]

但您始终可以在返回的 Set 上用原始单词调用 remove

关于java - 替换所有出现的特定字符并获取所有变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15643034/

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