判断字符串中的括号是否成对出现

来源:互联网 发布:哪个cms好 编辑:程序博客网 时间:2024/05/01 08:19

 public static void main(String[] args) {

String str = "淮安市设备招标(第一(标段))工程建设(招标)公告";
         CheckStr checkstr=new CheckStr();
         checkstr.Check(str);
      }         
class CheckStr{

    private boolean bool=true;
    
    public void Check(String str){
        char[] ch=str.toCharArray();
         int i=0;
         int chi=0;
         int chj=0;
         
         while(i<ch.length){
             if(ch[i]=='(' || ch[i]=='('){
                 chj++;
             }
             if(ch[i]==')' || ch[i]==')'){
                 chj--;
             }
           i++;     
         }
         i=0;
         
         while(i<ch.length && bool==true){
                      
             while(i<ch.length){
              if(ch[i]=='(' && ch[i]!=')'  || ch[i]=='(' && ch[i] !=')'){
                     chi++;
                 }else if(ch[i]==')' || ch[i] ==')'){
                     break;
                 }     
                 i++;
             }
             
             for( ;i<ch.length;i++){
                 if(ch[i]==')' && ch[i]!='(' || ch[i] ==')' && ch[i]!='('){
                     chi--;
                 }else if(ch[i]=='(' || ch[i] =='('){
                     break;
                 }
             }
             
             if(chi!=0){
                 bool=false;
             }
             if(chi>0&&chj!=0){
                 System.out.println("缺少右括号");       
             }
             if(chi<0&&chj!=0){
                 System.out.println("缺少左括号");
             }
        }
          
         if(bool==true){
             System.out.println("括号是匹配的");
         }
         else if(chj==0){
             System.out.println("括号是不匹配的");
        }
  } 

0 0
原创粉丝点击