【发布时间】:2023-04-09 20:21:01
【问题描述】:
我正在解决 CodingBat.com 上的编码挑战。问题来了:
给定一个字符串和一个非空字符串,返回一个版本 所有字符都被加号(“+”)替换的原始字符串, 除了保留的单词字符串的外观 不变。
plusOut("12xy34", "xy") → "++xy++" plusOut("12xy34", "1") → "1+++++" plusOut("12xy34xyabcxy", "xy") → "++xy++xy+++xy"
这是我尝试的解决方案:
public String plusOut(String str, String word)
{
String ret = "";
for (int i = 0; i < str.length() - word.length() + 1; ++i) {
if (str.substring(i, i + word.length()).equals(word))
ret += word;
else
ret += "+";
}
return ret;
}
但是给出了错误的输出:给出了太多的加号。我不明白为什么这不应该工作。我怀疑 substring 方法没有返回足够的匹配项,所以附加了加号。但我不明白为什么会这样。
【问题讨论】:
-
你试过调试你的代码吗?