如何在java中定义char堆栈?例如,要创建一个String堆栈,我可以使用这样的结构:
Stack <String> stack= new Stack <String> ();
但是当我尝试将char放入String时我得到了一个错误:
Syntax error on token "char", Dimensions expected after this token
答案 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
是作为函数参数传递的字符串。