Scanner
Scanner类是一个文本扫描器类,对字符串文本进行扫描操作。
Scanner主要作用--------------接受用户输入的值
1、首先需要构造一个Scanner类的对象,并且与标准输入流System.in关联
类型 变量名 = new 类型();
Scanner scanner = new Scanner(System.in);
2,调用Scanner类对象,scanner的方法从输入流中获取你需要的输入
变量.功能名字();
scanner.nextInt();//只接收整数数值,
Scanner.next();//只接收字符串类型的数值,
运用分为四个步骤:
1.实例化扫描对象,用来扫描系统的标准输入键盘
Scanner sc=new Scanner(System.in);
2.打印一个提示信息提示用户输
System.out.println("请在控制台输一个数");
3.接受用户键盘的输入入内容
int num=scanner.nextInt();
4.使用用户输入的内容
System.out.println("你输入的数是"+num);
Random
random类用于--------------生成随机数字
Random
类每次调用它最多可提供 32 个伪随机生成的位。
Random类与Scanner的用法基本上一样;
使用步骤:
- 导入包
- import java.util.Random;
- 创建对象
- Random r = new Random();
- 产生随机数
- int num = r.nextInt(10);
- 解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,要想获取到10的值那么就要在括号后面写上+1可以实现;
结合Scanner输入流和Random随机数,实现猜数字的游戏
package com.hp.text01;
import java.util.Random;
import java.util.Scanner;
import static java.lang.System.in;
public class Scanner和Randon随机生成数字猜数字 {
public static void main(String[] args) {
//随机生成一个1——100之间的数字,然后用户猜数字,判断大了提示大了,小了提示小了,猜对了提示猜对了然后进行次数的统计结束程序
Scanner scanner=new Scanner(in);//构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。使用户从system,in读取一个数
Random reandom=new Random();//创建一个新的随机数生成器。Random此类的实例用于生成伪随机数流,每次调用它最多可提供 32 个伪随机生成的位。
int num=reandom.nextInt(100)+1;//生成0——99 再加1 1——100
int counter=1;//设置个空值,统计猜的总次数
//使用da--while死循环进行猜数字,知道猜的数正确结束死循环
do {
System.out.println("请输入你猜的数字:");
int input=scanner.nextInt();
//判断输入的数字大小
if (input>num){
System.out.println("你输入的数字大了!!");
} else if (input<num) {
System.out.println("你输入的数字小了!!");
} else {
System.out.println("恭喜你猜对了!!!!");
break;//结束关闭循环
}
counter++;//总和进行加一
}while (true);
}
}
输出的结果
请输入你猜的数字:
50
你输入的数字小了!!
请输入你猜的数字:
90
你输入的数字大了!!
请输入你猜的数字:
81
恭喜你猜对了!!!!
ArrayList
ArrayList 类-------
集合:是一个动态数组,随着元素的增加长度可以自由增长,集合封装了丰富的增删改查操作 集合是底层的一种动态数组
ArrayList 继承了 AbstractList ,并实现了 List 接口。
ArrayList使用步骤:
1. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
代码如下(示例):
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
- E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
- objectName: 对象名
2. 添加元素,添加元素到 ArrayList 可以使用 add() 方法 。 添加并遍历元素如下:
//static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,
// 因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。
public class ArraylLIst数组集合 {
public static void main(String[] args) {
//集合:是一个动态数组,随着元素的增加长度可以自由增长,集合封装了丰富的增删改查操作
//集合是底层的一种动态数组
ArrayList<String>list=new ArrayList<>();
list.add("zs");
list.add("ls");
list.add("laysi");
list.add("jacek");
System.out.println(list);
list.add(2,"马云");
System.out.println(list);
System.out.println(list.get(3));
}
}
输出结果:
[zs, ls, laysi, jacek]
[zs, ls, 马云, laysi, jacek]
laysi
3.删除元素,如果要删除 ArrayList 中的元素可以使用 remove() 方法:
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}
[Google, Runoob, Taobao]
4,修改 ArrayList 中的元素可以使用 set() 方法:
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("weipinhui");
sites.add("pinduoduo");
sites.add("Taobao");
sites.add("jingdong");
sites.set(2, "Weixin"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
4,计算元素大小 .size()关键字判断你添加数组有几个值
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.size());// .size()关键字判断你添加数组有几个值
}
}
使用Scanner、Random、ArrayList完成一个不重复的点名程序
public static void main(String[] args) {
//使用Scanner,Random,ArrayList完成一个不重复的随机点名程序
//使用ArrayList把数据转换成集合,这是一个固定数组的形式
List<String>list1= Arrays.asList("小红","小甜","小美","小爱","小明","小华","小张","小李","小乐","小天");
//通过构造方法创建名单集合:把List集合中元素一一取出存入names集合中去
ArrayList<String>names=new ArrayList<>(list1);
//使用Scanner,Random,ArrayList完成一个不重复的随机点名程序
Random random=new Random();
Scanner scanner=new Scanner(in);
while (true){
if (names.size()==0){
System.out.println("本次点名结束,请重新开始。");
break;
}
System.out.println("点名请输入Y/y");
String input=scanner.next();//获取输入的内容
if (input.equals("Y")||input.equals("y")){
int index=random.nextInt(names.size());//随机产生集合索引范围内的一个值
String name=names.get(index);//根据索引获取对应位置元素,就是获取数组长度
System.out.println(name+"--------命中注定");
names.remove(index);
}else {
System.out.println("点名结束,欢迎下次使用本程序。");
break;
}
}
}