通过栈校验分隔符匹配的方法

这篇文章主要介绍“通过栈校验分隔符匹配的方法”,在日常操作中,相信很多人在通过栈校验分隔符匹配的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”通过栈校验分隔符匹配的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联是一家集网站建设,西林企业网站建设,西林品牌网站建设,网站定制,西林网站建设报价,网络营销,网络优化,西林网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

package helloclean;

public class StackX {

    private int maxSize;
    private char[] stackArray;
    private int top;

    public StackX(int max){
        maxSize = max;
        stackArray = new char[maxSize];
        top = -1;
    }

    public void push(char j) {
        stackArray[++top] = j;
    }

    public char pop() {
        return stackArray[top--];
    }

    public char peek() {
        return stackArray[top];
    }

    public boolean isEmpty() {
        return (top == -1);
    }

}
package helloclean;

public class BracketChecker {
    private String input;

    public BracketChecker(String in) {
        this.input = in;
    }

    public void check() {
        int stackSize = input.length();
        StackX theStack = new StackX(stackSize);

        for(int j = 0; j < input.length(); j ++) {
            char ch = input.charAt(j);
            switch (ch) {
                case '{':
                case '[':
                case '(':
                    theStack.push(ch);
                    break;

                case '}':
                case ']':
                case ')':
                    if(!theStack.isEmpty()) {
                        char chx = theStack.pop();
                        if((ch == '}' && chx != '{') || (ch == ')' && chx != '(') ||
                                ch == ']' && chx != '[') {
                            System.out.println("Error : " + ch  + " at : " + j);
                        }
                    } else {
                        System.out.println("Error : " + ch  + " at : " + j);
                    }
                    break;
                default:
                    break;
            }
        }
        if(!theStack.isEmpty()) {
            System.out.println("missing right delimiter!");
        }
    }
}
package helloclean;

import java.util.Scanner;

public class BracketApp {
    public static void main(String[] args) {
        String input;
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("input : eg: (ab[cd]e{fg})");
            input = scanner.nextLine();
            if(input.equals("q")) {
                System.out.println("退出!");
                break;
            }
            BracketChecker bracketChecker = new BracketChecker(input);
            bracketChecker.check();

        }
    }
}
input : eg: (ab[cd]e{fg})
abc(de)[fg]{xxxxx
missing right delimiter!
input : eg: (ab[cd]e{fg})
abc[ef]ggg)dd
Error : ) at : 10
input : eg: (ab[cd]e{fg})
abc(x)d
input : eg: (ab[cd]e{fg})

到此,关于“通过栈校验分隔符匹配的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

本文题目:通过栈校验分隔符匹配的方法
本文URL:/article6/ipigog.html

成都网站建设公司_创新互联,为您提供品牌网站建设响应式网站关键词优化微信小程序搜索引擎优化定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

星空体育app最新版本(2024已更新)建设