package Eric.ADT.Application; import java.util.Scanner; import Eric.ADT.MyStack; import Eric.ADT.MyStack2; /** * <p> * Title:BranketMatching * </p> * <p> * Description:本程序主要是棧的應用,實現括號匹配的問題 * </p> * <p> * Location:Frostburg * </p> * * @author: Eric.Chen * @date:2017年10月4日下午8:12:30 */ public class BranketMatching { // {<([])>}) public static void main(String[] args) { MyStack stack = new MyStack(); System.out.println("請輸入要進行檢測的括號字符串,包括<>,(),{},[]:"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); if (str.length() % 2 != 0) { System.out.println("括號匹配失敗!!!"); } else { String open = "<({["; String close = ">)}]"; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { if (open.indexOf(charArray[i]) != -1) { stack.push(charArray[i]); } else if (close.indexOf(charArray[i]) != -1) { char peek = (char) stack.peek(); if (charArray[i] - peek == 1 || charArray[i] - peek == 2) { Object pop = stack.pop(); } } } if (stack.isempty()) { System.out.println("括號匹配成功!!!"); } else { System.out.println("括號匹配失敗!!!"); } } } }