我想用用户输入实现一个二维数组。我有一个图书类,它的变量是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
}
}
}
希望您的帮助。
你从来没有声明过数组 歌曲也许你想写
bk[i][j] = ...
现在,你要为每一个人创建一个新的 "书"。名称 和 撒料 的,所以你有两个选择。
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);
所以你需要的是Book[String name][int price]。这不是二维数组的工作方式。
int l=5;
Book[][] bk = new Book[l][l];
你要实现的是一个二维图书阵列,可以有25条图书记录,1D图书阵列足以满足你的要求。
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int l = 25;//any size you can have
Book[] bk = new Book[l];
for(int i=0;i<l;i++){
System.out.println("Enter Song: ");
String sname = in.next();
System.out.println("Enter price: ");
int sprice = in.nextInt();
Book book = new Book();
book.setName(sname);
book.setprice(sprice);
bk[i]=book;
}
}