java判断字符串中的括号是否匹配,左括号“(” 和右括号“)” 的匹配

想到一种判断字符串括号是否匹配的方法,供有缘人参考。

定义一个计数器,将字符串进行遍历,遍历过程中,如果先遇到右括号,直接判定为不匹配,遇到左括号计数器加1,遇到右括号计数器减1,遍历完成如计数器结果为0,则字符串匹配,否则不匹配。

 1 public class IsMatch {
 2 
 3     public static void main(String[] args) {
 4         // 定义一个计数器,初始值为0
 5         int count = 0;
 6 
 7         // 随便给一个实例作为判断目标
 8         String str = "(((+))/5)()-/()";
 9 
10         // 开始判断
11         for (int i = 0; i < str.length(); i++) {
12             if (count < 0) {
13                 break;
14             }
15             // 临时变量,遍历的目标字符串字符
16             String temp = str.substring(i, i + 1);
17             // 左括号,计数器加1
18             if (temp.equals("(")) {
19                 count++;
20             }
21             // 右括号,计数器减1
22             if (temp.equals(")")) {
23                 count--;
24             }
25 
26             // 打印字符串的字符
27             System.out.print(temp + " ");
28         }
29 
30         // 换行
31         System.out.println();
32         if (count == 0) {
33             // 匹配为yes
34             System.out.println("yes");
35         } else {
36             // 不匹配为not
37             System.out.println("not");
38         }
39     }
40 
41 }

当然也可判断其他类型的字符是否匹配,比如{}、[]等等。

 

posted @ 2018-09-14 16:48  FineYoung  阅读(3179)  评论(0编辑  收藏  举报