【发布时间】:2013-08-08 18:09:17
【问题描述】:
我正在创建一个检查字符串中重复字母的程序。
例如:
呜呜呜呜呜呜
happpppppppy
这是我的代码:
string repeatedWord = "woooooooow";
for (int i = 0; i < repeatedWord.Count(); i++)
{
if (repeatedWord[i] == repeatedWord[i+1])
{
// ....
}
}
代码可以运行,但总是会出错,因为最后一个字符 [i + 1] 为空/null。
错误是索引超出了数组的范围。
有什么解决办法吗?
【问题讨论】:
-
repeatedWord.Count() - 1
-
很清楚:如果你寻找 +1 索引,你不能迭代到最后一个位置。 repeatWord.Count() - 1 应该是最大值。
-
如果您有一个长度为 10 个元素的数组,则无法尝试读取第 11 个元素。您是否在调试器中单步执行了“for”循环以查看发生了什么?
-
您是在寻找顺序重复还是整个字符串中的任何字符重复?您也有兴趣了解重复的实际字符,还是只想得到
bool结果? -
你的目标是什么?你想得到重复字符的数量吗?目前尚不清楚您的目标是什么。
标签: c# string if-statement