首页 > 其他分享 >DEMO_02:随机数获取;数组集合遍历;整型与字符串转换;字符串字符遍历;数组/集合排序

DEMO_02:随机数获取;数组集合遍历;整型与字符串转换;字符串字符遍历;数组/集合排序

时间:2024-06-20 15:57:44浏览次数:27  
标签:遍历 20 String 随机数 数组 字符串 排序

/**
 * 考核点:随机数获取;数组集合遍历;整型与字符串转换;字符串字符遍历;数组/集合排序
 * <p>
 * 题目:
 * 1. 使用while循环获取20个五位数随机数并打印;
 * 2. 遍历20个数,筛选出随机数中3的倍数,并统计个数;
 * 3. 符合2的数中,找出五位数中3的倍数和位置
 * 4. 符合2的数中,把这五位数重新按从小到大排序
 * 输出结果,1输出:[21324,64864,33279,97412,......]
 * 234输出:
 * 第1个符合条件数:21324;[3在第3位];重排序:12234
 * 第2个符合条件数:33279;[3在第3位,3在第2位,9在第5位];重排序:23379
 * .......
 * 第n个符合条件数:xxxx;[],重排序:xxxxx
 */
public class Main02 {
    public static void main(String[] args) {

        //思考一下为什么要初始化大小数组集合;new ArrayList<>(20)
        //回答:预估数据量初始化数组集合大小,避免数组在数组在存数据时发生数组扩容造成资源浪费

        // 存放20个随机数
        List<Integer> data = new ArrayList<>(20);
        Random random = new Random();
        while (data.size() < 20) {
            int num = random.nextInt(90000) + 10000;  //[0,90000) -> [10000,100000)
            data.add(num);
        }
        System.out.println("初始化20个随机数:");
        data.stream().forEach(one -> System.out.print(one + " "));
        System.out.println();

        // 遍历数据
        int num = 0;
        for (Integer one : data) {
            // 统计3的倍数
            if (one % 3 == 0) {
                num++;

                List<String> indexMsg = new ArrayList<>(); // 存放3的倍数的位置信息
                List<String> dataList = new ArrayList<>();
                // 遍历当前随机数的每个数字
                char[] charArray = one.toString().toCharArray();
                for (int i = 0; i < charArray.length; i++) {
                    String chStr = String.valueOf(charArray[i]);
                    Integer single = Integer.valueOf(chStr);
                    if (single % 3 == 0) {
                        String msg = single + "在第" + (i + 1) + "位";
                        indexMsg.add(msg);
                    }
                    dataList.add(chStr);
                }

                String indexResult = String.join(",", indexMsg); // 随机数中3的倍数定位信息

                dataList.sort((o1, o2) -> Integer.valueOf(o2) - Integer.valueOf(o1));
                String sortResult = String.join("", dataList); // 重排序结果

                System.out.println("第" + num + "个符合条件数:" + one + ";[" + indexResult + "];重排序:" + sortResult);
            }
        }

    }
}

  

标签:遍历,20,String,随机数,数组,字符串,排序
From: https://www.cnblogs.com/cola-zhou/p/18258817

相关文章

  • 数组合并去重排序
     constarr1=[54,67,89,1,4,3,5,0,0,3]    constarr2=[5,5,6,7,8,3,2,5,7,453,54]    functionpopSort(arr){      for(leti=0;i<arr.length;i++){        for(letj=0;j<arr.leng......
  • JDBC实例:执行遍历查询操作,并打印查询结果
     //导入了Java的SQL包importjava.sql.*;publicclassMain{publicstaticvoidmain(String[]args)throwsException{//注册MySQL的JDBC驱动Class.forName("com.mysql.jdbc.Driver");//连接自己的数据库,我连接了数据库“pinta”St......
  • 代码随想录刷题记录(11)| 二叉树(二叉树理论基础,二叉树的递归遍历,迭代遍历,统一迭代,层序遍
    目录(一)二叉树理论基础1.种类2.存储方式3.遍历方式4.二叉树的定义 (二)二叉树的递归遍历1.思路2.递归遍历(1)前序遍历(2)中序遍历(3)后序遍历(三)二叉树的迭代遍历1.思路2.迭代遍历 (1)前序(2)中序(3)后序(四)二叉树的统一迭代(五)二叉树的层序遍历1.思路2.层序遍......
  • 每日一道算法题 删除字符串中出现次数最少的字符
    题目删除字符串中出现次数最少的字符_牛客题霸_牛客网(nowcoder.com)C语言#include<stdio.h>#include<string.h>voidfun_2024_6_17(void){charstr[20]={0};while(scanf("%s",str)!=EOF){intalpha[26]={0};intmin=20;......
  • Vue 中 v-for 的全方位解读:含案例与 key 属性运用及常用数组方法
    目录v-for介绍v-forkey属性的使用Vue数组方法v-for介绍        v-for能够对数字、数组以及对象进行遍历。值得注意的是,当v-for与v-if一同运用时,v-for的优先级要高于v-if。正因如此,应尽量避免将v-if和v-for共同使用。特别是在嵌套使用的情况下,每一......
  • 0基础学C++ | 第02天 | 基础知识 | sizeof关键字 | 浮点型 | 字符型 | 转义字符 | 字
    前言  该文章是在B站学习C++,同时结合自己的理解整理的笔记,视频连接:https://www.bilibili.com/video/BV1et411b73Z/?p=8&spm_id_from=333.880.my_history.page.click 1、sizeof关键字作用:利用sizeof关键字可以统计数据类型所占用的内存大小语法:sizeof(数据类型/变量)#incl......
  • DEMO_01:List数据存储,回调函数,集合转字符串,元素去重
    *题目:*1.构建属性结构List<DemoNode>data,根据本包的data.png中数据结构图将数据存入data中(字就是nodeName)*2.将树形结构List<DemoNode>里面的元素全部遍历出来存放到List<String>list中,输出结果转换成字符串:粉粉碎机被粉碎机粉碎了怎么办*3.将list里元素去重后......
  • linux - 字符串替换
    使用场景:部署项目的时候,需要统一修改IP地址等内容。缺点:这些命令,都缺少必要的校验功能,容易因为操作失误,会出现未替换,或者替换成空串的情况。比如说:写了好多行的sed命令,不小心删了一行代码,这种情况下,执行代码不会报错,因此很容易埋下安全隐患。推荐:要进行很复杂的替换时,还是......
  • java小记-随机数、数组
    练习4:①随机数:类似scanner键盘录入的三步:答:(只能猜一次)如果继续猜呢:添加循环:注意:添加新的功能:保底,抽的次数到某个时刻,直接猜中,不管结果几何。②数组:......
  • #C:比如有如下两个字符串:“hello“、“helhehe“不能使用库函数完成字符串的比较
    #include<stdio.h>#include<string.h>voidtest00()//比如有如下两个字符串:"hello"、"helhehe"不能使用库函数完成字符串的比较{ //时刻需要注意变量i的值  charbuf1[128]="";   printf("请输入第一个字符串buf1:");   //scanf("%s",buf1);......