gpt4 book ai didi

java - 非顺序地构建一个字符串?

转载 作者:行者123 更新时间:2023-12-01 07:52:19 24 4
gpt4 key购买 nike

例如:

您将获得一个单词和一组字母。如果单词包含不在 Set 内的字母,则这些字母将被破折号“替换”。您实际上并不应该更改给定的单词,而是创建一个反射(reflect)这些更改的新String

假设你得到了一个词:“magikarp”。 Set 包含字母“m”、“k”、“p”。您将返回的字符串将为“m---k--p”。

如何仅利用 StringString 方法来实现此目的?我也无法使用任何外部库。

对我来说,使用数组更直观,但这必须通过构建 String 来执行,而不是为了提高效率而构建任何额外的数据结构。

这就是我的处理方法(可行的解决方案,但不是通过构建 String 来完成的),以供进一步说明:

public String getPattern (SortedSet<Character> guesses, String word) {
char[] pattern = word.toCharArray();
for (int i = 0; i < wordLength; i++) {
if (!guesses.contains(pattern[i])) {
pattern[i] = '-';
}
}
// Pads each character in the generated String with spaces and trims
// the leading and trailing spaces.
return new String(pattern).replace("", "").trim();
}
}

最佳答案

您可以使用 String 已经提供的方法,获取每个字符的方法以及用另一个字符替换特定字符的方法:

public String getPattern (Set<Character> guesses, String word) {
for (int i=0; i<word.length(); ++i) {
char c = word.charAt(i);
if (!guesses.contains(c))
word = word.replace(c, '-');
}
return word;
}

它的效率不是很高,因为它会为每个需要替换的字符创建一个新的字符串实例。为了提高效率,使用 StringBuilder 会更好。

关于java - 非顺序地构建一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211604/

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