我想使用用户输入实现一个二维数组。 我有一个book类,它需要变量int,price和String name。 要在一个二维数组中存储5本书的信息。 图书类别代码如下
public class Book{
String name;
int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
主类代码
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int l = 5;
Book[][] bk = new Book[l][l];
for(int i=0;i<l;i++){
for(int j= 0;j<l;j++){
//here i want to take user input.
System.out.println("Enter Song: ");
String sname = in.next();
System.out.println("Enter price: ");
int sprice = in.nextInt();
song[i][j] = song[sname][price]; //in this line i am getting type error int can't convert to string
}
}
}
我希望你的帮助。
您从未声明数组song,也许您想要编写
bk[i][j] = ...
现在您希望为您阅读的每个sName和sprice创建一本新的“书”,因此您有两个选项:
1)在每次迭代中创建一个新的空书
Book tmp = new Book();
然后你定了他的名字和价格
tmp.setName(sname);
tmp.setPrice(sprice);
然后将新书分配给bk的当前元素
bk[i][j] = tmp;
或
2)向类Book添加一个构造函数,该构造函数以Name和Price为参数
public Book(String n, int p){
name = n;
price = p;
}
并将其分配给bk的当前元素
bk[i][j] = new Book(sname, sprice);