随机点名器

我们首先分析题目的要求,顾名思义。就是随机获取一个人的名字然后打印出来;将文件中的内容打印到控制台,我们首先想到的是字符缓冲输入流将内容读出来,(选择字符缓冲输入流的原因是效率比较高),再找一个容器将这些内容存储起来,产生一个随机数,通过获取随机数从而获取里边的内容,首先想到的就是集合,其次有索引,随机获取索引从而获取索引对应的值,集合里边有索引的是List,二这里是查找,不是增删,最终选择ArrayList;

题目分析完之后,这里捋一下做题步骤:

1.创建字符缓冲输入流,将数据读出来

2.创建ArrayList集合,准备接受对象

3.一次读一个字符,准备读数据

4.将读出来的数据依次添加到集合中

5.创建Random对象

6.每次产生一个0-----集合长度的随机数

7.集合通过调用get(int index)方法获取指定位置的元素,产生的随机数作为参数传进去

8.打印通过索引获取到的姓名;

代码实现 如下

public class Demo10 {
    public static void main(String[] args) throws IOException {
        //定义一个路径
        String path="D:\\A\\c.txt";
        //调用方法,获取姓名
        String name = randomName(path);
        System.out.println("随机点到的名字是:"+name);

    }

    /**
     * 随机点名的方法
     * @param path 存入名字的文本路径
     * @return 所要获取的姓名
     * @throws IOException
     */
    public static String randomName(String path) throws IOException {
        //1.创建字符缓冲输入流,将数据读出来
        BufferedReader br = new BufferedReader(new FileReader(path));

        //2.创建ArrayList集合,准备接受对象
        ArrayList<String> list = new ArrayList<>();

        //3.一次读一个字符,准备读数据
        String line;
        while ((line = br.readLine()) != null) {
            //4.将读出来的数据依次添加到集合中
            list.add(line);
        }

        //5.创建Random对象
        Random random = new Random();
        //6.每次产生一个0-----集合长度的随机数
        int num = random.nextInt(list.size());
        //7.集合通过调用get(int index)方法获取指定位置的元素,产生的随机数作为参数传进去
        String name = list.get(num);

       return name;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值