java栈为什么插入栈的时候空指针错误

importjava.util.Scanner;publicclassArrayStack{privatestaticObject[]stackArray;private... import java.util.Scanner;

public class ArrayStack {
private static Object[] stackArray;
private static int top;
private int bottom;
final int minSize=10;
private static String answer=null;
private static String s;

public ArrayStack(){
top=-1;
stackArray=new Object[minSize];

}
public static void push(String j){
if(top==stackArray.length-1){
Object[] p=new Object[top*2];
for(int i=0;i<=top;i++) p[i]=stackArray[i];
stackArray=p;
}
top++;
stackArray[top]=j;

}
public static Object pop(){

if(top==-1) return 0;
else{
top--;
return stackArray[top-1];
}
}
public static String panduan(String s){

for(int i=0;i<s.length();i++){
String c=s.substring(i,i+1);
if(c.equals("(")||c.equals("[")||c.equals("{"))
push(c);

else if(c.equals(")")||c.equals("]")||c.equals("}")){
if(c.equals(top)){
pop();
}
}

}
if(top==-1){
answer="ture";
return answer;
}else{
answer="false";
return answer;
}

}
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
s=sc.next();
panduan(s);
System.out.println(answer);
}

}
展开
 我来答
百度网友9e4a079
推荐于2016-03-03 · TA获得超过291个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:150万
展开全部

public static void push(String j)这个方法是静态的,可以在main方法中直接调用到,也就是说你并没有显示的调用ArrayStack这个类的new方法,当然ArrayStack的构造方法也就没有被调用到,所以  top=-1;stackArray=new Object[minSize];这两句是不执行的,故stackArray这个数组也就没有被初始化,它是一个null,所以    if(top==stackArray.length-1){你这个地方才会爆空指针,因为stackArray是空值。你把方法的静态去掉,然后在main里这样调用

 Scanner sc=new Scanner(System.in);
     s=sc.next();
     ArrayStack as = new ArrayStack();
    as.panduan(s);
    System.out.println(answer);

或者

还是使用静态,初始化时

final static int minSize=10;
private static Object[] stackArray = new Object[minSize];

望采纳!!

subirt
2014-10-17 · TA获得超过1876个赞
知道大有可为答主
回答量:2435
采纳率:0%
帮助的人:1293万
展开全部
debug跟进去看看就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式