public class TestInteger {
public static void main(String[] args) {
// TODO: 
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());
}
}

解决方案 »

  1.   

    你运行的时候要
    java TestInteger xxx xxx
    这样子在命令行上加参数的,不然的话就arg数组越界报错,你在引用arg[0]跟arg[1]的时候,判别一个arg[]的长度
      

  2.   

    修改如下:sb应该声明在for循环之外。
    public class TestInteger {

     
    public static void main(String[] args) {
    // TODO: 
    StringBuffer sb = new StringBuffer();
    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++)
    {
    for(int j=0;j<w;j++)
    {
    sb.append('*');
    }  
    sb.append('\n');

    }
        System.out.println(sb.toString());
    }
    }
      

  3.   

    public class TestInteger {
    String args[]=new String[2]; public static void main(String[] args) {
    // TODO: 
                    args[0]="3";
                    args[1]="2"; //这样声明一下
    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());
    }
        
    }
    }这样编译可以通过
      

  4.   

    public static void main(String[] args)弄明白main方法中的参数就知道怎么回事了....顶...不死鱼