import java.util.ArrayList;/*** 存放单词的实体类,为附体类,需要运行mymain 主入口*/
public class Entity {private String ecglish;//英语单词private String chaina;//中文解释private String day; //属于第几天的单词private ArrayList list = new ArrayList();public ArrayList getList() {return list;}public void setList(ArrayList list) {this.list = list;}public Entity(String ecglish, String chaina, String day) {this.ecglish = ecglish;this.chaina = chaina;this.day = day;}public Entity() {}@Overridepublic String toString() {return "Entity{" +"ecglish='" + ecglish + '\'' +", chaina='" + chaina + '\'' +", day='" + day + '\'' +'}';}public String getDay() {return day;}public void setDay(String day) {this.day = day;}public String getEcglish() {return ecglish;}public void setEcglish(String ecglish) {this.ecglish = ecglish;}public String getChaina() {return chaina;}public void setChaina(String chaina) {this.chaina = chaina;}
}

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;/*
说明:首先添加需要背诵的单词
1.******添加单词******
2.******随机根据中文输入单词******  程序主入口
3.******主菜单******
4.******查看所有单词*******/
public class MyMain {private List<Entity> list = new ArrayList<Entity>();public static void main(String[] args) {MyMain arrayDemo01 = new MyMain();arrayDemo01.myMain();}//3.查看所有单词=========================================================private void myFor() {if (list.size() > 0) {myflash();//刷新控制台System.out.println("-------------------------------------------------------------------");for (Entity entity : list) {System.out.println("\t\t\t" + entity.getEcglish() + "\t\t\t" + entity.getChaina());}System.out.println("-------------------------------------------------------------------");myMain();} else {//没有单词时调用此方法myReturn();}}//没有单词时调用的方法。=========================================================private void myReturn() {myflash();//刷新控制台System.out.println("\t\t\t当前单词条数为【 " + list.size() + " 】请先添加单词\t\t\t");myMain();//跳到主菜单}//根据提示,默写单词=========================================================private void ranDomChina() {if (list.size() > 0) {int count = 0;// 记录默写成功的单词数量int over = 0;// 统计默写错误的单词数量myflash();//刷新Scanner scanner = new Scanner(System.in);//生成一个而随机数,最大为list的存储个数.取得一个当前默写需要的词组Random random = new Random();int r = random.nextInt(list.size());String english = list.get(r).getEcglish();String china = list.get(r).getChaina();//拼接字符串提示String st;while (true) {st = "请输入:【" + china + "】 对应的单词" + "  当前单词总数量:【" + list.size() + "】";st += "  默写成功总次数:【" + count + "】" + "  失败次数【" + over + "】";st += "  【0:查看提示】 " + "【1:进入主界面】";System.out.println(st);String s = scanner.nextLine().trim();//trim方法,删除前后空格1if (s.equals(english)) {//输入正确====== 进行的操作====================count++;//成功+1myflash();//刷新控制台System.out.println("~~~~恭喜你,输入正确~~~~");r = random.nextInt(list.size());//输入正确之后重新生成随机数english = list.get(r).getEcglish();//重新定义英语china = list.get(r).getChaina();//重定义提示的中文} else if (s.equals("0")) {myflash();System.out.println("提示:\t【" + english + "】\t【" + china+"】");} else if (s.equals("1")) {break;} else {myflash();//刷新控制台over++;//默写失败+1System.out.println("输入的【" + s + "】错误,请重新输入:");}}//whyl循环结束myflash();//当跳出while循环时,刷新myReturn();//当跳出while循环时,进入主菜单} else {//没有单词时调用此方法myflash();myReturn();}}//此方法用于刷新控制台=========================================================private void myflash() {for (int i = 0; i < 25; i++) {System.out.println();}}//添加方法,调用的副方法=========================================================private void add01() {System.out.println("不能输入空字符串");System.out.println();System.out.println();}//遍历list 不能重复输入单词 ,返回true 有重复,返回false 没有重复private boolean englishEquals(String english) {for (Entity entity : list) {if (english.equals(entity.getEcglish())) {return true;}}return false;}//添加单词=========================================================private void add() {myflash();//刷新控制台Scanner scanner = new Scanner(System.in);while (true) {System.out.println("------------------------------------------------");System.out.println("请输入需要添加的英语单词:      【0.退出】");String english = scanner.nextLine().trim();//trim方法,删除前后空格1if (english.equals("0")) {break;} else if ("".equals(english)) {add01();continue;}//判断是否重复输入单词if (englishEquals(english)) {System.out.println("请勿输入重复的单词:" + english);continue;}System.out.println("请输入需要添加对应的中文:      【0.退出】");String china = scanner.nextLine().trim();//trim方法,删除前后空格1if (china.equals("0")) {break;} else if ("".equals(china)) {add01();continue;}Entity entity = new Entity();entity.setEcglish(english);entity.setChaina(china);list.add(entity);System.out.println("成功添加,当前条数:【" + list.size() + "】");System.out.println("------------------------------------------------");System.out.println();System.out.println();System.out.println();}myMain();}/*** 主菜单=========================================================*/private void myMain() {System.out.println("(  ´-ω ・)▄︻┻┳══━一(  ´-ω ・)▄︻┻┳══━一(  ´-ω ・)▄︻┻┳══━一");System.out.println();System.out.println("\t\t 【1.添加单词】");System.out.println("\t\t 【2.默写单词】");System.out.println("\t\t 【3.查看所有单词】");System.out.println("\t\t 【请输入选择:】");Scanner scanner = new Scanner(System.in);String s = scanner.nextLine().trim();//trim方法,删除前后空格1switch (s) {case "1"://"1.******添加单词******"add();break;case "2"://"2.******默写单词******"ranDomChina();break;case "3"://"3.******查看所有单词******"myFor();break;default:myflash();//刷新控制台System.out.println("!!!!!!!!!!!!!非法输入!!!!!!!!!!!!!");myMain();//调用本方法,重新开始主菜单}}
}

java用scanner 和random的一个小案例相关推荐

  1. 一个小案例理解case穿透、switch语句

    一.用case穿透简化代码以一个小案例为例:键盘录入星期数,输出工作日.休息日(1-5)工作日,(6-7)休息日 package test;import java.util.Scanner;publi ...

  2. Java多线程设计模式之顺序控制-两个小案例

    Java多线程设计模式之顺序控制-两个小案例 案例一 两个线程,保证B线程执行完毕后再让A线程执行 思路一:使用wait/notify,需要synchronized关键字支持 思路二:使用LockSu ...

  3. 用一个小案例来解释linux中文件或目录的权限

    Linux中文档和目录的权限 众所周知 , Linux中文档的权限包括所有者权限(User).同组权限(Group)和其他权限(Other).使用rwx来作为表示,分别为read.write和exec ...

  4. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import timestart = time.time()u ...

  5. 爬虫的一个小案例:python实现英汉互译

    什么是网络爬虫? 网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序.众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容. 一个小案例:py ...

  6. Java使用Scanner与random实现骰子游戏

    import java.util.Scanner; public class APtest01 {public static void main(String[] args) {int i = (in ...

  7. java input.nextline_关于java:Scanner#nextLine()留下一个剩余的换行符

    我一直遇到Scanner#nextLine的问题. 根据我的理解,nextLine()应该返回当前输入流的其余部分,然后继续进行下一行. while (true){ try{ System.out.p ...

  8. 使用java中Scanner,Randon,ArrayList完成一个随机点名系统

    import java.util.*;public class Test01 {public static void main(String[] args) {//使用Arrays.asList创建一 ...

  9. java(Scanner类.Random类.Array list类)

    Scanner类的功能:可以实现键盘输入数据,到程序当中. 引用类型的一般使用步骤: 导包 import 包路径.类名称; 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写. 只有 ...

最新文章

  1. python opencv教程rtsp server_Python多进程opencv调用rtsp视频流
  2. vuex结合php,vuex中store的使用介绍(附实例)
  3. 1026:空格分隔输出
  4. resteasy_RESTEasy教程第2部分:Spring集成
  5. 还在担心机器人?人工智能目前水平还不如初中生
  6. ios官方菜单项目重点剖析附项目源码
  7. 30 校准_机会难得校准实验室认可培训别再错过
  8. 尚观嵌入式c语言视频教程
  9. javascript的数组和数组元素的遍历,实现全国省份和城市一览表
  10. oracle hanganalyze的用法以及trace文件分析(通过library cache pin和lock)
  11. 解决python使用gmail smtp服务发邮件报错smtplib.smtpauthentic
  12. win10家庭版将中文用户名修改为英文
  13. 【VS Code】Windows10下VS Code配置Ruby语言环境
  14. 20元制作笔记本电脑防偷窥神器
  15. HTML+CSS写一个三角形(原理+实例)
  16. win 10 读写EFI分区
  17. 华为如何显示我的电脑连接到服务器地址,怎么查电脑的服务器连接地址
  18. Internet Download Manager v6.41.3中文特别版IDM下载器免费下载
  19. 基于STM32F103单片机的无线病床呼叫系统
  20. 解密pdf-3(输入我们本国的文字--中文)

热门文章

  1. java正确的代码_对文件名为Test.java的java代码描述正确的是()
  2. 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸
  3. 关于linux内核的有关叙述中,下列关于嵌入式Linux系统内核的叙述正确的是()。
  4. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收
  5. v210 启动脚本分析
  6. mysql 增量备份脚本_MySQL自动化(全量+增量)备份脚本
  7. python 怎么处理json_Python是怎样处理json模块的
  8. mysql查看事件任务内容_MySql事件计划任务
  9. linux实验三makefile,实验平台上Makefile详细的解释
  10. 替换元素_80%的前端会答错的问题:lt;imggt;是什么元素?