java 语法分析器 括号匹配

package test;

import java.util.*;
public class Test {
 

   public String text="fewe{f(sdd(f)a[j]sdk)j}f";
    int i=0;
    public LinkedList stack=new LinkedList();
    public Test() {
    }
    public String analyiz(int ip){
       char temp=text.charAt(ip);
       char a;
       if(temp=='('||temp=='['||temp=='{'){
           stack.add(temp);
       }else if(temp==')'){
           a=(Character)stack.getLast();
           if(a=='('){
              stack.removeLast();
           }
       }else if(temp==']'){
           a=(Character)stack.getLast();
           if(a=='['){
              stack.removeLast();
           }
       }else if(temp=='}'){
           a=(Character)stack.getLast();
           if(a=='{'){
              stack.removeLast();
           }          
       }
       if(stack.size()==0&&ip==text.length()-1){
           String c="匹配";
           return c;
       }else if(stack.size()!=0&&ip==text.length()-1){
           String b="不匹配";
           return b;
       }else{
           return analyiz(ip+1);//递归
       }
    }
    public static void main(String[] args){
        Test test=new Test();
        String a=test.analyiz(0);
        System.out.println(a);
    }
}
posted @ 2018-03-13 11:24  郎佳星  阅读(1153)  评论(0编辑  收藏  举报