验证需要判断一个字符串里括号是否成对出现,发现正则满足不了,只能用java方法,网上找了下,没有合适的,自己参考简单的例子改造了个,希望对大家有用。
public class ValidatorMethod
{
public boolean isMatch(String s)
{
Stack<Character> sc=new Stack<Character>();
char[] c=s.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i]=='('||c[i]=='['||c[i]=='{') {
sc.push(c[i]);
}
else if (c[i]==')') {
if(sc.isEmpty()){
return false;
}
else{
if (sc.peek()=='(') {
sc.pop();
}
}
}
else if (c[i]==']') {
if(sc.isEmpty()){
return false;
}
else
{
if (sc.peek()=='[') {
sc.pop();
}
}
}else if (c[i]=='}') {
if(sc.isEmpty()){
return false;
}
else{
if (sc.peek()=='{') {
sc.pop();
}
}
}
}
if (sc.empty()) {
return true;
}else {
return false;
}
}
public static void main(String args[])
{
ValidatorMethod validatorMethod = new ValidatorMethod();
String str="(((520+480)*38/10)/2*((520+480)*38/10)/2)";
boolean bool=validatorMethod.isMatch(str);
System.out.println(bool);
}
}
分享到:
相关推荐
一个表达式中包括变量、常量、操作符、圆括号,圆括号可以嵌套, 编写程序判断表达式中的括号是否正确匹配。输入任意一个表达式,判断其中括号是否匹配,匹配, 输出OK, 不匹配,输出NO。(表达式的长度小于50)
在编程领域,括号匹配是一项基础且重要的任务,特别是在处理表达式、代码解析或编译器设计时。本文将深入探讨如何使用C语言和数据结构中的循环队列来实现括号匹配的算法。 首先,我们需要了解什么是循环队列。循环...
通过比较字符是否为左括号或右括号,并调用栈的push和pop方法,可以有效地检查括号匹配。 总之,本教程通过`Stack`数据结构展示了如何在Java中检测括号匹配,这不仅有助于理解和应用栈的特性,还对于解析语言表达式...
这里的“stack实现括号匹配”是指利用栈这种数据结构来判断一个字符串中的左右括号是否正确配对。栈是一种后进先出(LIFO)的数据结构,非常适合用于解决此类问题。 首先,我们需要理解栈的基本操作:压入(push)...
- **判断括号是否配对**:如果所有计数器的值均为0,则说明所有的括号都已正确配对;反之则表示存在未配对的括号。 - **输出结果**:根据判断结果输出相应的提示信息。 #### 四、优化建议 1. **算法改进**:当前...
根据给定的文件信息,本篇文章将详细解析如何设计一个算法来判断算术表达式中的圆括号是否正确配对,并结合Java语言实现这一算法。 ### 设计算法 #### 问题描述 对于一个算术表达式,我们需要设计一个算法来判断...
该算法的主要思想是使用栈来存储括号的开头和结尾,然后通过比较栈顶元素来判断括号是否匹配。 在Java中,栈可以使用java.util.Stack类来实现。在括号匹配算法中,栈用于存储括号的开头和结尾。例如,在LeetCode的...
在Java中,我们可以定义一个名为“Kuohaopipei”的类,其中包含一个或多个方法,比如`isMatch`,用于判断输入的字符串中的括号是否匹配。代码可能包括以下步骤: 1. 初始化一个空栈。 2. 遍历输入字符串,遇到左...
在IT领域,栈的应用广泛且实用,特别是在处理括号匹配、计算器运算以及中缀表达式转后缀表达式的问题上。 1. **括号匹配**: 在编程语言中,括号(如圆括号"()"、方括号"[]"和大括号"{}")用于定义代码块或表达式...
Java正则表达式是一种强大的字符串匹配工具,可以用来提取大括号小括号中的内容,并对数字和小数进行判断。在本文中,我们将详细介绍如何使用Java正则表达式来实现这些功能。 获取大括号小括号内容 首先,我们可以...
- 计算方法:负责实际的解析和计算工作,包括判断运算符优先级,处理括号,进行实际的加减乘除运算等。 - 测试和调试:为了确保计算器正确工作,应编写测试用例,包括各种情况,如正常运算、优先级、括号等。 ...
栈是一种后进先出(Last In First Out,LIFO)的数据结构,非常适合用来处理括号匹配问题。 #### 算法步骤 1. **初始化栈**:创建一个空栈用于存储左括号。 2. **遍历字符串**:逐个检查字符串 `s` 中的每一个字符 ...
Java判断中英文符号、标点的实现是Java开发中一个重要的知识点,本篇文章主要介绍了Java中判断中英文符号、标点的实现方法。 在Java中,判断中英文符号、标点可以使用UnicodeBlock和UnicodeScript来实现。...
括号匹配算法是一种常见的编程题目,旨在判断给定的字符串是否有效。有效字符串需满足两个条件:左括号必须用相同类型的右括号闭合,左括号必须以正确的顺序闭合。 在 LeetCode 第 20 题中,问题描述为:给定一个只...
Java中的正则表达式是程序开发中处理字符串匹配、查找、替换和判断的强大工具,尤其在处理复杂的文本操作时,正则表达式能显著提高效率。自Java 1.4引入`java.util.regex`包以来,Java程序员可以方便地利用正则...
在这个过程中,我们还涉及到了一个辅助函数`isValidMatch`用于判断当前闭括号是否与栈顶的开括号匹配。另外,注意在遍历结束后还需要检查栈是否为空,以防止有未匹配的开括号。 除了使用栈,还可以使用递归或动态...
题目描述: 给定一个只包括 '(',')','{','}','[',']'...括号匹配是一个很明显的使用栈解决的问题 import java.util.Stack; class Solution { public boolean isValid(String s) { Stack stack = new Stack();
- **基本操作**:包括初始化(构造方法)、入栈(push)、出栈(pop)、判断栈是否满(isFull)和判断栈是否为空(isEmpty)。在提供的代码中,`SeqStack`类已经实现了这些操作。例如,`push`方法首先检查栈是否已...
Java正则表达式是编程语言Java中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或提取文本。这个“java正则表达式检查”小工具专门用于测试正则表达式的有效性,帮助开发者验证自己的正则表达式是否...