Scanner ,Random ,ArrayList

Java Scanner 类

Java 用户输入

Scanner 类用于获取用户输入,它位于 包中。java.util

要使用 类,请创建该类的对象,并使用 类文档中的任何可用方法。 在我们的示例中,我们将使用方法,该方法用于读取字符串:ScannerScannernextLine()

import java.util.Scanner;  // 导入 Scanner 类

class MyClass {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);  // 创建一个 Scanner 对象
    System.out.println("Enter username");

    String userName = myObj.nextLine();  // 读取用户输入
    System.out.println("Username is: " + userName);  // 输出用户输入
  }
}

输入类型

在上面的示例中,我们使用了 方法,该方法用于读取字符串。要阅读其他类型,请查看下表:nextLine()

方法 描述
nextBoolean() 从用户处读取boolean布尔值
nextByte() 从用户处读取byte字节值
nextDouble() 从用户处读取double双精度值
nextFloat() 从用户处读取float浮点值
nextInt() 从用户处读取int
nextLine() 从用户处读取String字符串值
nextLong() 从用户处读取long
nextShort() 从用户处读取short

 Java Random 类

Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。

Random 类位于 java.util 包中,该类常用的有如下两个构造方法。

  • Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。
  • Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。


Random 类提供的所有方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的概率是均等的,在表 1 中列出了 Random 类中常用的方法。
 

Random 类的常用方法
方法 说明
boolean nextBoolean() 生成一个随机的 boolean 值,生成 true 和 false 的值概率相等
double nextDouble() 生成一个随机的 double 值,数值介于 [0,1.0),含 0 而不包含 1.0
int nextlnt() 生成一个随机的 int 值,该值介于 int 的区间,也就是 -231~231-1。如果
需要生成指定区间的 int 值,则需要进行一定的数学变换
int nextlnt(int n) 生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。如果想生成
指定区间的 int 值,也需要进行一定的数学变换
void setSeed(long seed) 重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象
和相同种子数使用 new 关键字创建出的 Random 对象相同
long nextLong() 返回一个随机长整型数字
boolean nextBoolean() 返回一个随机布尔型值
float nextFloat() 返回一个随机浮点型数字
double nextDouble() 返回一个随机双精度值

  根据Scanner,Random和ArrayList 编写猜数字游戏

package ChangYL;

import java.util.Random;
import java.util.Scanner;

public class Sjs {

    public static void main(String[] args) {
//		随机生成一个数字
        Random r=new Random();
//		确定数字生成范围
        int a=r.nextInt(100)+1;
//		控制台输入数据
        System.out.println("随机数字已生成,请输入0-100之间的数字");

        Scanner sc=new Scanner(System.in);

        while (true) {
            int b=sc.nextInt();
            int c=1;
            if (a>b) {
                System.out.println("输入的数字"+b+"太小了,请再次输入");
                c++;
            }else if(a<b) {
                System.out.println("输入的数字"+b+"太大了,请再次输入");
                c++;
            }else{
                System.out.println("恭喜你!猜对了");
                if (c<=3) {
                    System.out.println("你好聪明呀!");
                }else if (c<=6) {
                    System.out.println("还不错哦.");
                }else {
                    System.out.println("你真是个大**");
                }
            }
        }
    }
}

不重复的点名程序 

package ChangYL;

import java.util.*;

public class Dm {

    public static void main(String[] args) {

        List<String> list = Arrays.asList("aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii");
        ArrayList<String> names = new ArrayList<>(list);


        Scanner sc = new Scanner(System.in);
        Random random = new Random();

        while (true) {

            if (names.size() == 0) {
                System.out.println("点名完毕!");
                break;
            }
            System.out.println("请输入字母启动程序:");
            String cs = sc.next();
            if (cs.equals("Y") || cs.equals("y")) {
                int index = random.nextInt(names.size());
                System.out.println(names.get(index));
                names.remove(index);
            } else {
                System.out.println("点名结束!");
            }


        }


    }

}

猜你喜欢

转载自blog.csdn.net/m0_70051776/article/details/128034504
今日推荐