我正在开发一个程序,在该程序中我必须读取文件并存储奖项名称和价格。我正在尝试打印出我存储有信息的数组,但是它打印出了十六进制代码。如何解决此问题,以便在阵列上存储正确的名称和价格?这是我的代码:
public class PrizeGame {
public static void main(String[] args) {
Prize[] prizes = new Prize[50];
Random random = new Random();
try {
Scanner fileScanner = new Scanner(new File("prizeList.txt"));
int count = 0;
while (fileScanner.hasNextLine()) {
String fileLine = fileScanner.nextLine();
String[] splitLine = fileLine.split("\t");
if (splitLine.length == 2) {
prizes[count] = new Prize(splitLine[0], Integer.parseInt(splitLine[1]));
count++;
}
}
for (int i = 0; i < prizes.length; i++) {
System.out.println(prizes[i]);
}
} catch (IOException e) {
System.out.println("Error reading file");
}
}
}
这是我的award()代码:
public class Prize {
String name;
int price;
public Prize(String name, int price){
this.name = name;
this.price = price;
}
public String getName()
{
return name;
}
public int getPrice()
{
return price;
}
public void setName(String name)
{
this.name = name;
}
public void setPrice(int price)
{
this.price = price;
}
}
最佳答案
在奖赏中添加toString
方法:
@Override
public String toString() {
return this.name + " " + this.price;
}
或代替:
System.out.println(prizes[i]);
写
System.out.println(prizes[i].getName() + " " + prizes[i].getPrice());