Scanner、Random与ArrayList

1、Scanner

简介:Scanner类是在jdk1.5版本引入的,它在java的util工具包下,主要用于扫描用户从控制台输入的文本。当我们需要通过控制台输入数据时,只需要事先导入java.util包中的Scanner类,然后调用Scanner类,我们的程序就能获取我们在控制台所输入的数据了。

 使用方法:

创建Scanner对象

Scanner  sc = new  Scanner(System.in);

创建一个变量来接收数据

//根据数据类型的不同使用对应的方法接收数据,方法如下:
int a = sc.nextInt();
double b = sc.nextDouble();
byte c = sc.nextByte();
short d = sc.nextShort();
long e = sc.nextLong();
boolean f = sc.hasNextBoolean();
String g = sc.next();
String h = sc.nextLine();

示例:

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字");
        int a = sc.nextInt();
        System.out.println("您输入的数字是:"+a);
    }

 Scanner方法汇总:

 2、Random

作用:生成一个随机数

使用方法:

创建Random对象

Random random = new Random();

创建一个变量来接收随机数

//由于随机数生成范围较大,所以我们要限制随机数生成的范围
//括号限制随机数范围0--n(包括0不包括n)
int num = random.nextInt(100);

示例:

public static void main(String[] args) {
        Random random = new Random();
        int a = random.nextInt(10);
        System.out.println(a);
    }

3、ArrayList 

概念:

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。

用法:

ArrayList<(数据类型)> (对象名) =new ArrayList<>();

add()添加元素

remove()删除元素

size()计算长度

 添加元素

public static void main(String[] args) {
        ArrayList<String> name = new ArrayList<>();
        name.add("蔡徐坤");
        name.add("练习生");
        name.add("两年半");
        name.add("唱、跳、rap、篮球");
        for (int i = 0;i<name.size();i++){
            System.out.println(name.get(i));
        }
    }

运行结果:

删除元素

使用remove()方法

格式:

对象名.remove(所要删除元素的下标)

public static void main(String[] args) {
        ArrayList<String> name = new ArrayList<>();
        name.add("蔡徐坤");
        name.add("练习生");
        name.add("两年半");
        name.add("唱、跳、rap、篮球");
        name.add("小黑子");
        for (int i = 0;i<name.size();i++){
            System.out.println(name.get(i));
        }
        System.out.println("-----------删除后------------");
        name.remove(4);
        for (int i = 0;i<name.size();i++){
            System.out.println(name.get(i));
        }
    }

结果:

 示例:

使用Scanner与Random完成猜数字小游戏,当输入数字大于生成的随机数时提示猜大了,当输入数字小于生成的随机数时提示猜小了,并在猜对后提示共猜了多少次。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        //限制随机数范围为0--100
        int num = random.nextInt(100)+1;
        //定义一个变量来记录一共猜了几次
        int c = 1;
        do {
            System.out.println("请输入一个数字0--100");
            int a = scanner.nextInt();
            if (a>num){
                System.out.println("猜大了");
            }else if (a<num){
                System.out.println("猜小了");
            }else{
                System.out.println("猜对了");
                猜对后使用break结束循环
                break;
            }
            c++;
        }while (true);
        System.out.println("一共猜了"+c+"次");
    }

 

完成一个不重复随机点名系统:

public static void main(String[] args) {
        //实例化对象并添加数据
        List<String> list = Arrays.asList("张三","李四","王五","赵六","田七");
        ArrayList<String> names = new ArrayList<>(list);
        Scanner sc = new Scanner(System.in);
        Random random = new Random();
        //使用while循环完成连续点名操作
        while (true){
            System.out.println("输入Y/y开始点名");
            String a = sc.next();
            if (a.equals("Y")|| a.equals("y")){
                //生成随机数并点名
                int b = random.nextInt(names.size());
                String c = names.get(b);
                System.out.println(c);
                //删除被点中的幸运儿
                names.remove(b);
                //当集合中没有元素时结束循环
                if (names.size() == 0){
                    System.out.println("点名结束");
                    break;
                }
            }else {
                //当输入值不是Y/y时结束循环
                System.out.println("点名结束");
                break;
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_69420643/article/details/128026301
今日推荐