C#字符串括号匹配检查:半角与全角括号的区别

c程序员 by:c程序员 分类:C# 时间:2024/08/12 阅读:33 评论:0

C#是一种广泛使用的编程语言,在日常开发中经常需要处理字符串操作。其中,检查字符串中括号的匹配情况是一个常见的需求。但在处理时,开发者需要注意半角括号和全角括号的区别,以确保程序能正确识别和处理。

半角括号与全角括号的区别

C#中,括号分为半角括号和全角括号两种形式。半角括号使用ASCII编码,分别为"("和")"。而全角括号使用Unicode编码,分别为"("和")"。这两种括号在视觉上非常相似,但在编程中需要区分对待。

半角括号是C#中最常见的括号形式,大多数开发者都习惯使用它们。而全角括号则更多出现在中文环境中,比如在中文文本中嵌入代码片段时。

检查字符串括号匹配

要检查字符串中括号的匹配情况,可以使用C#提供的内置方法。以下是一个示例代码:

$$ \begin{align*} \text{bool IsBalanced(string input)} \\ \{ \\ \text{Stack stack = new Stack();} \\ \text{foreach (char c in input)} \\ \{ \\ \text{if (c == '(' || c == '['|| c == '{' || c == '(' || c == '【' || c == '{')} \\ \{ \\ \text{stack.Push(c);} \\ \} \\ \text{else if (c == ')' || c == ']' || c == '}' || c == ')' || c == '】' || c == '}')} \\ \{ \\ \text{if (stack.Count == 0 || !IsMatchingPair(stack.Pop(), c))} \\ \{ \\ \text{return false;} \\ \} \\ \} \\ \} \\ \text{return stack.Count == 0;} \\ \} \text{bool IsMatchingPair(char open, char close)} \\ \{ \\ \text{return (open == '(' && close == ')') || } \\ \text{(open == '[' && close == ']') || } \\ \text{(open == '{' && close == '}') || } \\ \text{(open == '(' && close == ')') || } \\ \text{(open == '【' && close == '】') || } \\ \text{(open == '{' && close == '}');} \\ \} \end{align*} $$

这个方法首先创建一个Stack来存储遇到的左括号。然后遍历输入字符串,遇到左括号就压入栈,遇到右括号就检查是否与栈顶的左括号匹配。如果不匹配或者栈为空,则说明括号不平衡,返回false。最后,如果遍历完成后栈为空,说明括号全部匹配,返回true

需要注意的是,该方法同时支

非特殊说明,本文版权归原作者所有,转载请注明出处

本文地址:https://chinaasp.com/2024081716.html


TOP