gpt4 book ai didi

Java:在循环中替换字符串时出现问题

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

我正在构建一个小型应用程序,它可以自动翻译 Java 中的 boolean 查询。

此代码用于查找查询字符串是否包含某个单词,如果包含,则将其替换为翻译后的值。

int howmanytimes = originalValues.size();

for (int y = 0; y < howmanytimes; y++) {
String originalWord = originalValues.get(y);
System.out.println("original Word = " + originalWord);

if (toReplace.contains(" " + originalWord.toLowerCase() + " ")
|| toCheck.contains('"' + originalWord.toLowerCase() + '"')) {
toReplace = toReplace.replace(originalWord, translatedValues.get(y).toLowerCase());
System.out.println("replaced " + originalWord + " with " + translatedValues.get(y).toLowerCase());
}

System.out.println("to Replace inside loop " + toReplace);
}

问题在于,例如,当查询具有“(mykeyword OR "blue mykeyword")”且翻译值不同时,例如,mykeyword翻译为 elpalavra 和“blue mykeyword” 翻译为“elpalavra azul”。在这种情况下,结果字符串应该是 '(elpalavra OR "elpalavra azul")' ,而结果却是 '(elpalavra OR "blue elpalavra")' 。据我所知,在第一个循环中,它替换了所有关键字,在第二个循环中,它不再包含翻译所需的原始值。我该如何解决这个问题?

谢谢

最佳答案

您可以按大小降序对原始值进行排序。然后循环遍历它们。这样,您首先替换“blue mykeyword”,并且仅在替换“mykeyword”之后

关于Java:在循环中替换字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372252/

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