如何正确获取匹配的括号

题目意思解析:

{Group1}

Example1{Item1} , Example2{Item2}

Key{Example1{Item1},Example2{Item2}}, Value{Example1{Item1},Example2{Item2}}

诸如这样的形式,我们往往需要准确的得到分组,这就需要我们找倒每一个“{”对应的“}(这里不仅仅限于{},任何符号都可以,只要定义成对即可),很显然,用string.Split(); 是行不通的。

解决方案:

我们可以利用栈来实现,栈最大的特点就是先进后出,括号匹配也是一样的,最前面的括号肯定试和最后面的括号匹配,所以用栈实现比较合适。

方案代码:

传入需检测的字符串,得到第一个‘{’对应的‘}’的位置

int MatchedPosition(string testString)

{

int end = 0;

Stack stack = new Stack();

for (int i = 0; i < testString.Length; i++)

{

switch (testString[i])

{

case '{':

stack.Push(i);

break;

case '}':

stack.Pop();

end = stack.Any() ? 0 : i;

break;

}

}

return end;

}

你可能感兴趣的:(如何正确获取匹配的括号)