public class ArrayStackDemo {    public static void main(String[] args) {        ArrayStack stack = new ArrayStack(5);        String key;        boolean loop = true;        Scanner scanner = new Scanner(System.in);        while (loop) {            System.out.println("===================");            System.out.println("请输入下列指令");            System.out.println("show: 展示栈内容");            System.out.println("pop: 出栈");            System.out.println("peek: 显示栈顶");            System.out.println("push: 入栈");            System.out.println("exit: 退出程序");            System.out.println("===================");            key = scanner.next();            switch (key) {                case "show":                    stack.show();                    break;                case "push":                    System.out.println("输入一个数");                    int value = scanner.nextInt();                    stack.push(value);                    break;                case "peek":                    try {                        System.out.println("栈顶数值是:" + stack.peek());                    } catch (Exception e) {                        System.out.println(e.getMessage());                    }                    break;                case "pop":                    try {                        int v = stack.pop();                        System.out.println("出栈数值: " + v);                    } catch (Exception e) {                        System.out.println(e.getMessage());                    }                    break;                case "exit":                    scanner.close();                    loop = false;                    break;                default:                    break;            }        }        System.out.println("Exit app successfully!");    }}class ArrayStack {    private int size;    private int[] arr;    private int top;    public ArrayStack(int size) {        this.size = size;        arr = new int[size];        top = -1;    }    public boolean isEmpty() {        return top == -1;    }    public boolean isFull() {        return top == size - 1;    }    public void push(int n) {        if (isFull()) {            System.out.println("栈已满,无法继续push!");            return;        }        arr[++top] = n;    }    public int pop() {        if (isEmpty()) {            throw new RuntimeException("栈是空的,pop失败!");        }        return arr[top--];    }    public int peek() {        if (isEmpty()) throw new RuntimeException("栈是空的,peek失败!");        return arr[top];    }    public void show() {        if (isEmpty()) {            System.out.println("栈是空的,show不出来");            return;        }        for (int i = top; i >= 0; i--) {            System.out.println(arr[i]);        }        System.out.println();    }}