編寫一個constructor來實現檔案裡面資料的隨機抽取

bug不存在的發表於2021-10-15

ublic class BoxOfProduce {

 private static String Item1;

 private static String Item2;

 private static String Item3;

 /**

  * 用來隨機抽取檔案內的水果名稱,並且複製給Lineread

  *

  * @return Lineread

  * @throws IOException

  */

 private String randomlySelect() throws IOException {

  int Linenum;

  String Lineread = null;

  // 建立Random類,隨機生成0~4之間的一個數

  Random rd = new Random();

  Linenum = rd.nextInt(5);

  // 開啟檔案

  File file = new File("itemList.txt");

  Scanner inputFile = new Scanner(file);

  // 用for迴圈給Lineread賦值

  for (int i = 0; i <= Linenum; i++) {

   Lineread = inputFile.nextLine();

  }

  // 關閉檔案

  inputFile.close();

  // 返回Lineread

  return Lineread;

 }

 /**

  * 建立一個constructor,給Item1,Item2,Item3賦值

  *

  * @throws IOException

  */

 public BoxOfProduce() throws IOException {

  Item1 = randomlySelect();

  Item2 = randomlySelect();

  Item3 = randomlySelect();

 }

 /**

  * 用來返回Item1

  *

  * @return Item1

  */

 public static String getItem1() {

  return Item1;

 }

 /**

  * 可以用來改變Item1的值

  *

  * @param item1

  */

 public static void setItem1(String item1) {

  Item1 = item1;

 }

 /**

  * 用來返回Item2

  *

  * @return Item2

  */

 public static String getItem2() {

  return Item2;

 }

 /**

  * 可以用來改變Item2的值

  *

  * @param item2

  */

 public static void setItem2(String item2) {

  Item2 = item2;

 }

 /**

  * 用來返回Item3

  *

  * @return Item3

  */

 public static String getItem3() {

  return Item3;

 }

 /**

  * 可以用來改變Item3的值

  *

  * @param item3

  */

 public static void setItem3(String item3) {

  Item3 = item3;

 }

 /**

  * 輸出Item1,Item2,Item3的值

  */

 public void display() {

  System.out.println("The contents of the box:");

  System.out.println("Item1:" + Item1);

  System.out.println("Item2:" + Item2);

  System.out.println("Item3:" + Item3);

  System.out.println();

 }

 public static void main(String[] args) throws IOException {

  String answer;  //用來得到使用者的答案

  String substituteItem;//使用者輸入的用來替換的水果名稱

  

  //建立Scanner類

  Scanner kb = new Scanner(System.in);

  //建立BoxOfProduce類

  BoxOfProduce boxOfProduce = new BoxOfProduce();

  boxOfProduce.display();

  //詢問使用者是否滿意第一種水果

  System.out.print("Do you agree with the selected item1,"

    + boxOfProduce.getItem1() + "(Yes or No):");

  answer = kb.nextLine();

  if (answer.equals("No")) {

   System.out

     .print("Enter the substituting fruit or vegetable for item1:");

   //得到替換水果的名稱

   substituteItem = kb.nextLine();

   boxOfProduce.setItem1(substituteItem);

  }

  System.out.print("Do you agree with the selected item2,"

    + boxOfProduce.getItem2() + "(Yes or No):");

  answer = kb.nextLine();

  if (answer.equals("No")) {

   System.out

     .print("Enter the substituting fruit or vegetable for item2:");

   substituteItem = kb.nextLine();

   boxOfProduce.setItem2(substituteItem);

  }

  System.out.print("Do you agree with the selected item3,"

    + boxOfProduce.getItem3() + "(Yes or No):");

  answer = kb.nextLine();

  if (answer.equals("No")) {

   System.out

     .print("Enter the substituting fruit or vegetable for item3:");

   substituteItem = kb.nextLine();

   boxOfProduce.setItem3(substituteItem);

  }

  System.out.println();

  //輸出最終結果

  boxOfProduce.display();

 }

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007877/viewspace-2837592/,如需轉載,請註明出處,否則將追究法律責任。

相關文章