如何定义char堆栈?

时间:2012-01-05 16:57:34

标签: java

如何在java中定义char堆栈?例如,要创建一个String堆栈,我可以使用这样的结构:

Stack <String> stack= new Stack <String> ();

但是当我尝试将char放入String时我得到了一个错误:

Syntax error on token "char", Dimensions expected after this token

4 个答案:

答案 0 :(得分:54)

char等原始类型不能用作Java中的类型参数。您需要使用包装器类型:

Stack<Character> stack = new Stack<Character>();

答案 1 :(得分:12)

char是Java中的原始数据类型之一which cannot be used in generics。但是,您可以替换包装器java.lang.Character,如:

Stack<Character> stack = new Stack<Character>();

您可以将Character分配给char或其他方式; Java将autobox为您提供价值。

答案 2 :(得分:7)

使用char集合效率很低。 (但它可以工作)你可以包装一个StringBuilder,它也是一个可变的char集合。

class CharStack {
    final StringBuilder sb = new StringBuilder();

    public void push(char ch) {
        sb.append(ch);
    }

    public char pop() {
        int last = sb.length() -1;
        char ch= sb.charAt(last);
        sb.setLength(last);
        return ch;
    }

    public int size() {
        return sb.length();
    }
}

答案 3 :(得分:-1)

char[] stack=new char[s.length()]

其中 s 是作为函数参数传递的字符串。