如何检查字符串中是否有其他字符?检查某个字符是否跟着另一个字符?
我想检查一个字符串中的每个'A'是否至少跟一个'B'。 'B'不必直接跟随它,也不一定是偶数个A和B。
例如:
AAZZBB =真
AAAXXXXYB =真
BBYYYXXXAXX =假
YYYBABYYYXXXAXX =假
这里的代码,我的工作,但它使返回true:
public bool BalancedAB(string str)
{
int endPos = str.Length - 1;
for (int pos = 0; pos <= endPos; pos++)
{
if (str[pos] == 'A')
{
if (pos < endPos)
{
char next = str[pos + 1];
if (next == 'B')
{
pos++;
continue;
}
}
return true;
}
}
return false;
}
在这种情况下返回什么:'AZZBB'? –
'if(str.LastIndexOf(“A”)!= -1 && str.IndexOf(“B”,str.LastIndexOf(“A”))> -1)' – Vikhram
这是一个很糟糕的方式来构造代码。使用“继续”通常会产生不良的代码味道,历史上应该使用“继续”的情况很少。我并不惊讶它错误地返回了“真实”。如果你到达'A'并且下一个字符不是'B'并且它不在字符串的末尾,那么它将返回true。 –