Java實現隨機點名器---(字符緩衝流+集合的方式)

需求:我有一個文件裏面存儲了班級同學的姓名,每一個姓名佔一行,要求通過程序實現隨機點名器。

思路:
①:創建字符緩衝輸入流對象
②:創建ArrayList集合對象
③:調用字符緩衝輸入流對象的方法讀數據
④:把讀取的字符串存儲到集合中
⑤:釋放資源
⑥:使用Random產生一個隨機數,隨機數的範圍在:[0,集合的長度)
⑦:把第六步產生的隨機數作爲索引到ArrayList集合中獲取值
⑧:把第七步得到的數據輸出到控制檯

代碼:
package com.yang.demo;

import java.io.*;
import java.util.ArrayList;
import java.util.Random;

/**
 * @author WangYang
 * @version 1.0
 * @create 2020-02-11 20:27
 * <p>
 * 需求:我有一個文件裏面存儲了班級同學的姓名,每一個姓名佔一行,要求通過程序實現隨機點名器。
 * 思路:
 * ①:創建字符緩衝輸入流對象
 * ②:創建ArrayList集合對象
 * ③:調用字符緩衝輸入流對象的方法讀數據
 * ④:把讀取的字符串存儲到集合中
 * ⑤:釋放資源
 * ⑥:使用Random產生一個隨機數,隨機數的範圍在:[0,集合的長度)
 * ⑦:把第六步產生的隨機數作爲索引到ArrayList集合中獲取值
 * ⑧:把第七步得到的數據輸出到控制檯
 */
public class RollcallDemo {
    public static void main(String[] args) throws IOException {
        //創建字符緩衝輸入流對象
        BufferedReader br = new BufferedReader(new FileReader("MyIO\\studentInfo.txt"));

        //創建ArrayList集合對象
        ArrayList<String> array = new ArrayList<>();

        String line;
        while ((line = br.readLine()) != null) {
            //把讀取的字符串存儲到集合中
            array.add(line);
        }
        //釋放資源,這裏簡單處理
        br.close();


        Random random = new Random();
        //返回僞隨機的,均勻分佈 int值介於0(含)和指定值(不包括)。
        int randomNum = random.nextInt(array.size());

        String selectedName = array.get(randomNum);
        System.out.println("恭喜***" + selectedName + "***被選中");
    }
}

運行結果:

在這裏插入圖片描述

另附studentInfo.txt:
林黛玉
薛寶釵
王熙鳳
史湘雲
賈元春
賈迎春
賈探春
賈惜春
秦可卿
妙玉
巧姐
李紈

注意:
BufferedReader br = new BufferedReader(new FileReader(“MyIO\studentInfo.txt”));
這裏使用的是相對路徑,idea裏相對的是module所在的同級目錄(即上面寫的MyIO目錄)

發佈了12 篇原創文章 · 獲贊 5 · 訪問量 938
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章