| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:超级新手!求援!一个简单的问题!请帮忙修正错误!3Q
只看楼主 加入收藏
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
 问题点数:0 回复次数:5 
超级新手!求援!一个简单的问题!请帮忙修正错误!3Q

本人刚刚开始学JAVA编程 老师给留的作业,我遇到了一个小问题,请大侠帮忙!3Q
是压栈弹栈的程序!
以下代码的运行时错误(开发工具是MyEclipse5.1)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at stacklx.Stack.inStack(Stack.java:18)
at stacklx.Test.main(Test.java:24)
错误的代码分别是下面//*******************************的行!

/////////////////////请问怎么才能把错误修正啊?////////////////////////

package stacklx;
public class Stack {
private int i;
public Stack(int a) {
i = a;
}
private String[] stack = new String[i];
private int top = -1;
public void inStack(String x) {
if (fullStack()) {
System.out.println("栈已满,不能在压栈了!");
} else {
top++;
stack[top] = x; //**************************************************
System.out.println("压入数据:" + x);
}
}
public void outStack() {
if (emputyStack()) {
System.out.println("栈已空,不能在弹栈了!");
} else {
String temp = stack[top];
stack[top] = null;
top--;
System.out.println("弹出数据:" + temp);
}
}
public boolean emputyStack() {
if (top == -1) {
return true;
} else {
return false;
}
}
public boolean fullStack() {
if (top == i-1) {
return true;
} else {
return false;
}
}
public int showTop() {
return top;
}
public String showTopData() {
if (emputyStack()) {
return null;
} else {
return stack[top];
}
}
}
下面的是测试类!

package stacklx;
public class Test {
public static void main(String[] args) {
Stack stack=new Stack(8);
//Stack stack=new Stack();
// if(stack.emputyStack()){
// System.out.println("是空栈!");
// }else{
// System.out.println("不是空栈!");
// }
// if(stack.fullStack()){
// System.out.println("是满栈!");
// }else{
// System.out.println("不是满栈!");
// }
for(int i=0;i<15;i++){
String a=""+i;
stack.inStack(a); //******************************************************
}
System.out.println(stack.showTop());
System.out.println(stack.showTopData());
for(int i=0;i<15;i++){
stack.outStack();
}
System.out.println(stack.showTop());
System.out.println(stack.showTopData());
}
}
-------------------------------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=131674 JPanel添加键盘事件

http://bbs.bc-cn.net/viewthread.php?tid=11146 JAVA起步篇


http://bbs.bc-cn.net/viewthread.php?tid=131690 JAVA中JInternalFrame位置设置

http://bbs.bc-cn.net/viewthread.php?tid=131308 请问字符串如何转换成16进制?

http://bbs.bc-cn.net/viewthread.php?tid=130806 学习java的30个目标

http://bbs.bc-cn.net/viewthread.php?tid=131234 Java精华积累:每个初学者都应该搞懂的问题!

http://bbs.bc-cn.net/viewthread.php?tid=89608 课堂笔记学习java(初级)

http://bbs.bc-cn.net/dispbbs.asp?boardid=8&replyid=96344&id=130228&page=1&skin=0&star=1 Integer的问题

http://bbs.bc-cn.net/viewthread.php?tid=126568 Swing窗口程序中加入URL

http://bbs.bc-cn.net/dispbbs.asp?boardid=8&replyid=152996&id=140521&page=1&skin=0&star=1
90天学J2SE经验浅谈 附带各板块学习作品原码
http://bbs.bc-cn.net/dispbbs.asp?boardid=8&replyid=156397&id=141585&page=1&skin=0&star=1
JavaSE GUI 编程的一个例子
http://bbs.bc-cn.net/viewthread.php?tid=141632&extra=&page=1 一起来玩JavaFX

http://bbs.bc-cn.net/viewthread.php?tid=124249 java的内存模型

http://bbs.bc-cn.net/viewthread.php?tid=171462 关于算法的一个例子

[此贴子已经被作者于2007-10-7 1:03:53编辑过]

搜索更多相关主题的帖子: 求援 超级 
2007-03-05 13:45
剃头刀
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-3
收藏
得分:0 
我只知道是数组的问题~~~~~
2007-03-05 14:59
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 

怎么改呢?


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-03-05 15:15
fox000002
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-9
收藏
得分:0 
stack创建用的是未初始化的i值,长度为0的数组,当然不能修改stack[top]。

Stack类的初始化方法应该有长度为i的stack字符串数组的创建。

private int i;
private String[] stack;

public Stack(int a) {
i = a;
stack= new String[i];
}


[此贴子已经被作者于2007-3-5 15:50:02编辑过]


2007-03-05 15:44
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 

谢谢4楼的提示!
问题已经解决了!
要是这样的话那个private int i;就没有什么用了
我直接把Stack(int a)的形参写到new String[a]中了
多谢你了!


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-03-05 15:56
剃头刀
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-3
收藏
得分:0 

厉害 ,我也学了一招

2007-03-05 16:01
快速回复:超级新手!求援!一个简单的问题!请帮忙修正错误!3Q
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014386 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved