列如输入字符串a,就会查询所有含a的单词和不含有a的单词,输入ab就会查询有a和b

package test5;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Five {
    static Set<String> list = new HashSet<String>();
    static Set<String> list2 = new HashSet<String>();
    static Set<String> list1 = new HashSet<String>();

// 生成大小写6位数字母作为字典
    public static String ranDom() {
        String sum = "";
        // 1.创建一个长度为62的字符数组
        char[] chars = new char[52];
        // 2.使用循环给字符数组里面塞满字符
        for (int i = 0; i < 26; i++) {
            // 记住:char本质上就是数字
            // 'a' + i ==> 97 + i

// 0~25的位置,放小写字母
            chars[i] = (char) ('a' + i);

// 26~51的位置放大写字母
            chars[i + 26] = (char) ('A' + i);

}
        // System.out.println( chars );

// 3.创建Random对象
        Random ran = new Random();
        // 4.循环6次,每次得到一个0~61之间的随机数字
        char[] result = new char[6];
        for (int i = 0; i < result.length; i++) {
            // 5.根据随机数字,从字符数组里面获取一个字符出来
            // 把获取得到的字符,放到新的字符数组里面
            int index = ran.nextInt(chars.length);

// 从字符数字里面获取一个字符出来
            char c = chars[index];

sum = sum + c;

}
        return sum;
    }

// 把输入的字符串转为字符查询英文字典里面是否有
    public static void quickSearch(char[] arr, String[] a2, String str) {
        for (int j = 0; j < arr.length; j++) {

for (int i = 0; i < a2.length; i++) {
                // 输入的字符串换为字符转为小写是否在字典里面
                int n = a2[i].toLowerCase().indexOf(arr[j]);
                // 输入的字符串转为小写是否在字典里面
                int s = a2[i].toLowerCase().indexOf(str);

if (n >= 0 && s >= 0) {
                    // 查询到存在list里面
                    list.add(a2[i]);

} else {
                    // 查询不到存在list2里面
                    list2.add(a2[i]);

}

}

}

System.out.println("单词表查询到单词:");

int i = 0;
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {

if (i % 20 == 0 & i != 0)
                System.out.println();
            System.out.print(iterator.next() + " ");
            i++;
        }
        System.out.println();
        System.out.println();
        System.out.println("单词表查询不到单词:");
        System.out.println();
        int j = 0;
        Iterator<String> iterator1 = list2.iterator();
        while (iterator1.hasNext()) {

if (j % 20 == 0 & j != 0)
                System.out.println();
            System.out.print("-" + iterator1.next() + " ");
            j++;
        }

}

public static void test() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        // 将十万个随机组成的6位数英文单词作为字典存进set集合里面
        for (int i = 0; i < 100000; i++) {
            String a = ranDom();
            list1.add(a);

}
        String[] a2 = list1.toArray(new String[0]);
        // String[] a1= {"user","she","hi","where","under"};
        String str = sc.next();
        // 把输入的字符大写转为小写
        char[] arr = str.toLowerCase().toCharArray();

quickSearch(arr, a2, str);

}

public static void main(String[] args) {
        test();
    }

}

java算法:随机生成英文单词表快速查询含有和不含有的单词(不考虑大小写)相关推荐

  1. JAVA实现随机生成航班数据

    JAVA实现随机生成航班数据 实现效果:通过java实现随机生成航班数据并保存到数据库 页面请求调用 先获取要生成数据的月份等参数,然后进行请求,对返回结果进行回填并不断递归调用. function ...

  2. java 手机号码生成_用R语言和java实现随机生成手机号码

    因为测试过程中需要不断用到不同的手机号码,加上本人有选择困难症,故此直接用代码生成随机号码,以免让自己犹豫应该输入哪个手机码号~觉得让自己随意选择号码跟给小孩取名的难度是一样一样的. java: pa ...

  3. 根据java实体类生成创建表sql步骤

    根据java实体类生成创建表sql步骤 根据java实体类生成创建表sql语句时,方法是利用java反射+AOP注解,主要步骤如下: 1.注解类 一般在生成表的时候,需要表名.主键名.字段名,对应到注 ...

  4. java推箱子随机地图的产生_为什么没有人研究推箱子地图自动生成算法?算法随机生成地图,不需要地图库!?...

    其实是有的,可以参考 Ty Taylor 的 The Art and Science of Procedural Puzzle Generation,https://www.youtube.com/w ...

  5. java实现随机生成五位 或 六位/新能源车牌号

    需求说明:利用java随机生成五位或六位车牌号,当车牌只有五位,在最后一位补 * 格式  →  eg:五位车牌:  川A · [ A,3,D,5,F] * 六位车牌: 川A · [ A,3,D,5,F ...

  6. java高效随机生成随机(英文+数字),可自定义

    高效 package com.messcat.imgrnt.utils;import java.io.Serializable; import java.util.Random;/*** 生成随机用户 ...

  7. java实体类生成mysql表_springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 org.mybatis ...

  8. java web随机生成四则运算_java四则运算生成器

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除 ...

  9. java:随机生成符合要求的复杂密码

    前言: 密码要求: 必须要包含大写字符.小写字符.数字.特殊符号,密码长度在 8-20 位. 设计结果: 输入密码长度,返回符合要求的随机密码. 1.需求拆分 需求可分为两点: 四种字符必须包含 长度 ...

最新文章

  1. zend framework php编码规范,Zend Framework常用校验器详解
  2. ECCV 2020 论文大盘点-6D 位姿估计篇
  3. java web 进程通信_RMI网络编程开发之一 JAVA“进程间”通信方式
  4. 每天一个Linux命令-ls
  5. 苹果笔记本上的qq 查看看自己的QQ空间 ,打开多个QQ
  6. 60-270-040-源码-指标监测-Flink自定义metric监控流入量
  7. mysql三表联合更新_mysql三表连接update
  8. 拆分窗口QSplitter
  9. 算法导论——lec 12 平摊分析与优先队列
  10. 论文笔记_S2D.18_2019-ICRA_DeepFusion: 基于单视图深度和梯度预测的单目SLAM实时稠密三维重建
  11. java 64位 32位_32位和64位的java程序可以通用吗
  12. DSP应用技术(第一章)
  13. 修改vscode图标
  14. Kubernetes Deployment故障排除图解指南
  15. mac安装虚拟机配置win10系统
  16. 【计算机网络】IPv6
  17. GFD563A101 3BHE046836R0101
  18. 66岁比尔盖茨离婚!西雅图并不相信爱情~
  19. plm服务器 硬件性能,如何对PLM系统进行性能诊断与调优?
  20. android studio真机测试不生成apk,Android应用开发Android Studio编译出来的APK无法安装如何解决?...

热门文章

  1. 小程序使用OCR识别身份证
  2. 图的深度优先遍历序列
  3. apple邀请码发放(apple邀请码,apple卡密获取)
  4. python 获取数据库字段类型_python数据库类型对应
  5. 多线程爬虫实战--彼岸图网壁纸爬取
  6. 【转】[转]总结下自己的学黑之路,希望对各位小黑和奋斗在计算机一线的码农们一些帮助!少走点弯路!...
  7. 华为云携手鸿蒙,培养创新型开发者
  8. 基于单片机的俄罗斯方块系统设计(#0511)
  9. 记录在阿L做外包的日子,给正在(金三银四)的你一点经验
  10. pandas 索引去重_python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除) 如何更新pandas dataframe的值...