java 数组越界

来源:百度知道 编辑:UC知道 时间:2024/09/25 18:32:32
public class TestInteger {
public static void main(String[] args)
{

int w=new Integer(args[0]).intValue();
int h=Integer.parseInt(args[1]);
// int h=Integer.valueOf(args[1]).intValue();
for(int i=0;i<=h;i++);
{
StringBuffer sb =new StringBuffer();
for(int j=0;j<=w;j++);
{
sb.append('*');
}
System.out.println(sb.toString());
}
}

}

提示框是:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at TestInteger.main(TestInteger.java:7)

该如何修改

数组的下标是从0开始计算的,长度为9时,下标最多只能到8,所以是你的判断条件错了.
i<=h;和j<=w;里的"等于"都不能有.
改为i<h;和j<w

for(int i=0;i<h;i++);
{
StringBuffer sb =new StringBuffer();
for(int j=0;j<w;j++);

qzai2000

正确。