Java随机点名器实现的四种方式(第一种)

随机点名器:在本地文件中读取数据并实现随机点名,文件由好名网数据提供,爬取好名网的代码由上一篇博文提供,传送门:https://blog.csdn.net/qq_69957794/article/details/135118537?spm=1001.2014.3001.5502

文件数据也可以自行写入,实现班级点名。

/*
* 需求:实现随机点名器
*      从本地文件下读取已经爬取好的男生女生姓名
*      格式:XXX-男-23
*      通过程序实现随机点名的功能
*      运行效果:
*      第一次运行程序:随机同学姓名1(只显示名字)
*      第二次运行程序:随机同学姓名2(只显示名字)
*      ...
* */
代码实现:
package RamdomRollCaller;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

/*
* 需求:实现随机点名器
*      从本地文件下读取已经爬取好的男生女生姓名
*      格式:XXX-男-23
*      通过程序实现随机点名的功能
*      运行效果:
*      第一次运行程序:随机同学姓名1(只显示名字)
*      第二次运行程序:随机同学姓名2(只显示名字)
*      ...
* */
public class RollCallerDemo1 {
    public static void main(String[] args) throws IOException {
        //创建对象关联本地文件name.txt
        BufferedReader br = new BufferedReader(new FileReader("name.txt"));
        //创建集合用于存取读到的数据,方便后续对数据的操作
        ArrayList<String> nameTempList = new ArrayList<>();
        String str = "";
        while((str = br.readLine())!= null){
            if(!str.equals("[]")){
                nameTempList.add(str);
            }
        }
        //关流
        br.close();
        //获取姓名
        ArrayList<String> nameList = new ArrayList<>();
        for (String tempName : nameTempList) {
            String[] arr = tempName.split("-");
            nameList.add(arr[0]);
        }
        //随机点名
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入点名同学个数:");
        String count = sc.nextLine();
        int nameCount = Integer.parseInt(count);
        //计数器,用来统计程序运行次数
        int temp = 0;
        while((nameCount--)!=0){
            temp ++;
            Collections.shuffle(nameList);
            System.out.println("第"+temp+"次运行程序:随机同学姓名"+temp+"("+nameList.get(0)+")");
        }
    }
}

运行结果:

下面是实现随机点名的第二种方式(带有概率的随机点名器):

https://blog.csdn.net/qq_69957794/article/details/135149040?spm=1001.2014.3001.5502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值