我正在开发一个程序,在该程序中我必须读取文件并存储奖项名称和价格。我正在尝试打印出我存储有信息的数组,但是它打印出了十六进制代码。如何解决此问题,以便在阵列上存储正确的名称和价格?这是我的代码:

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());

09-11 19:37
查看更多