一则java数组越界的问题。。请高手指点

来源:百度知道 编辑:UC知道 时间:2024/07/01 00:23:24
import java.io.*;
class Add
{
public static void main(String args[])
{
String[] book=new String[100];
int id, price;
for(int i=0;i<80;i++)
{
id=Integer.parseInt(args[0]);
String name=args[1];
String press=args[2];
price=Integer.parseInt(args[3]);
String stock=args[4];
book[i]=id+name+press+price+stock;
System.out.println(book[i]);
}
}
}

请帮忙找出这段代码的错误。。不胜感激。。

String[] args
运行时是
java Add 1 think_in_javaIV press 65 stock
然后args[0]--args[4]分别赋值为1 think_in_javaIV press 65 stock
你的for循环是输出了80次1think_in_javaIVpress65stock

如果java Add后面不加入 1 think_in_javaIV press 65 stock
就会出错

在cmd下用javac编译,java运行 是这样的结果

int类型的变量+string类型的变量+int类型的变量+string类型的变量+string类型的变量,这个会自动变为String的

请问……你这是要做什么?
用int类型的变量+string类型的变量+int类型的变量+string类型的变量+string类型的变量,得出的怪异字符串?
如果要将id、name、press、price和stock存入book数组,为什么不做一个包含以上属性的book对象,然后存入books数组?
class Book{
int id=0;
String name=null;
int price=0;
String press=null;
String stock=null;

public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
.......//如上面两个方法,给其余属性添加Getter/Setter方法。
}

在Add中的循环内,直接调用Book类中的Getter/Setter方法。
List books=null;
Book book=new Book();
book.setId(Integer.parseInt(args[0]));
book.setName(args[1]);