如何打印自己实现的堆栈?

时间:2016-10-23 12:49:02

标签: java stack

我正在使用自我实现的堆栈来删除和添加字符以获得最终结果(我有点解码字符串)。

示例:输入'hello-'必须给'地狱'。 ' - '删除前面的字符。

当前输出 - 'hellol'

唯一的要求是我必须使用自己实现的堆栈。你们有什么建议吗?感谢您的帮助!

 //this is my code for the stack
    public class MyStack{
       static int maxSize;
       static char[] stackArray;
       static int top;

       public MyStack(int s) {
          maxSize = s;
          stackArray = new char[maxSize];
          top = -1;
       }

    public boolean empty() {
        return (top == -1);
    }

    public void push(char item) {
        stackArray[++top] = item;

    }

    public char peek() {
        return stackArray[top];
    }

    public char pop() {
        return stackArray[top--];
    }
    }

    //this is in my main:
    for (char ch : password.toCharArray()){ //password is the input(hello-)
                if(Character.isLetter(ch) || Character.isDigit(ch)){
                    theStack.push(ch);
                    System.out.println(theStack.peek());    
                    }

                if(ch == '-'){
                    theStack.pop();
                    System.out.println(theStack.peek());
                }
        }   

1 个答案:

答案 0 :(得分:1)

覆盖toString的{​​{1}}:

MyStack

现在你可以做到

@Override
public String toString() {
    return "MyStack: " + new String(stackArray, 0, top + 1):
}

字段不应为System.out.println(theStack); 。对于static,整个班级的字段都存在一次。没有每个堆栈对象都存在字段。

static