Java基础经典10道题

目录

for循环的嵌套

题目一: 求101到200之间的素数的个数,并打印

代码分析:

注意点:

题目二:开发验证码

代码分析:

题目三:数组元素的复制

代码分析:

题目四:评委打分

健壮版代码:

代码分析:看源码

注意点:

题目五:数字加密

优化版代码:

代码分析:

题目六:数字解密

代码分析:

题目七:抢红包

优化版代码:

代码分析:

难点:

解释:

题目八:双色球彩票系统

运行结果:

代码分析:

题目九:


for循环的嵌套

题目一: 求101到200之间的素数的个数,并打印

代码:

package com.mohuanan.exercise;public class ExerciseTest01 {public static void main(String[] args) {int count = 0;for (int i = 101; i <= 200; i++) {boolean flag = true;for(int j = 2;j < i/2; j++){if(i % j == 0){flag = false;break;}}if(flag){count++;System.out.println(i+"是素数");}}System.out.println("一共"+count+"个素数");}
}

代码分析:

这里使用2个for循环,加上if条件判断标志flag是否为true,

注意点:

1.count应该放在if(flag)的里面,当flag为true是,这个数字就是素数

2.第二个for的j变量从2开始

题目二:开发验证码

代码:

package com.mohuanan.exercise;import java.util.Random;public class ExerciseTest02 {public static void main(String[] args) {//因为有52个字母(大小写)char[] chs = new char[52];for (int i = 0; i < chs.length; i++) {if (i <= 25) {//根据ASCII码//录入大写字母chs[i] = (char) (65 + i);//强制转化} else {//录入小写字母chs[i] = (char) (97 - 26 + i);}}String result = "";//创建一个Random的对象Random r = new Random();for(int i = 0;i<4;i++){//int randomIndex = r.nextInt(52);result = result + chs[randomIndex];}int number = r.nextInt(10);result = result + number;System.out.println(result);}}

代码分析:

1.定义了一个52的char类型的字符串,并用for循环根据ASCII码来给数组的元素赋值(大小写字母),创建了一个Random类,并使用nextInt()方法,进行四次循环,用来随机(大小为数组的长度)出来四个字母,赋值给String类型的变量result,之后再使用Random类中的nextInt()方法产生0到9的随机数,赋值给result

题目三:数组元素的复制

代码:

package com.mohuanan.exercise;public class ExerciseTest03 {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6};int[] newArr = new int[arr.length];for (int i = 0; i < arr.length; i++) {newArr[i] = arr[i];}//遍历输出for (int i = 0; i < arr.length; i++) {System.out.print(newArr[i]+" ");}//换行System.out.println();}
}

代码分析:

这个太简单了,可以自己看上面的代码,这里不再分析

题目四:评委打分

代码:

package com.mohuanan.exercise;import java.util.Scanner;public class ExerciseTest04 {public static void main(String[] args) {int sum = 0;int[] arr = new int[6];Scanner s = new Scanner(System.in);for (int i = 0; i < arr.length; i++) {System.out.println("请输入第" + (i + 1) + "个评委的分数");arr[i] = s.nextInt();sum += arr[i];}int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}if (min > arr[i]) {min = arr[i];}}float score = 0F;score = (float) (sum - max - min) / (arr.length - 2);System.out.println(score);}
}

健壮版代码:

package com.mohuanan.exercise;import java.util.Scanner;public class ExerciseTest04 {public static void main(String[] args) {int sum = 0;int[] arr = new int[6];Scanner s = new Scanner(System.in);for (int i = 0; i < arr.length; ) {System.out.println("请输入第" + (i + 1) + "个评委的分数");//判断 分数是否合法 int scoreArr = s.nextInt();sum += arr[i];if (scoreArr >= 0 && scoreArr <= 100){arr[i] = scoreArr;sum += arr[i];i++;//注意i++放在这里}else{System.out.println("您之前输入的分数有误"+"请重新输入第" + (i + 1) + "个评委的分数");}}int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}if (min > arr[i]) {min = arr[i];}}float score = 0F;score = (float) (sum - max - min) / (arr.length - 2);System.out.println(score);}
}

代码分析:看源码

注意点:

1.score = (float) (sum - max - min) / (arr.length - 2);这里要加强制转化,如果不加,/运算符会截断数据,从而使结果错误

题目五:数字加密

代码:

package com.mohuanan.exercise;import java.util.Scanner;public class ExerciseTest05 {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("请输入您的密码");int code = s.nextInt();code = handle(code);System.out.println(code);}public static int handle(int code) {int result = 0;int flag = 1;while (code > 0) {int temp;temp = code % 10;temp = (temp + 5) % 10;result = result + temp * flag;//result = result * 10 + temp;// reversedNumber = reversedNumber * 10 + digit;  // 将最后一位数字添加到反转数字的末尾code /= 10;flag *= 10;}result = reversalNum(result);return result;}//数字反转public static int reversalNum(int code) {int result =0;while (code > 0) {int temp;temp = code % 10;result = result * 10 + temp;code /= 10;}return result;}}

优化版代码:

package com.mohuanan.exercise;public class ExerciseTest06 {public static void main(String[] args) {int number = 1983;//为后面的下面使用number的值int temp = number;int count = 0;//计算数字的长度while (number != 0) {count++;number /= 10;}//定义一个数组int[] arr = new int[count];//把数字上的每一位复制到数组中while (temp != 0) {arr[--count] = temp % 10;temp = temp / 10;}//每位数加上5 并对10求余for (int i = 0; i < arr.length; i++) {arr[i] = arr[i] + 5;arr[i] = arr[i] % 10;}//所有数字反转for (int i = 0;i<arr.length/2; i++) {//arr.length/2 是把它看成一半int t;t = arr[i];arr[i] = arr[arr.length-1-i];//-1是索引 -i是arr[arr.length-1-i] = t;}//拼接int newNumber = 0;for (int i = 0; i < arr.length; i++) {newNumber = newNumber*10 + arr[i];}//输出打印System.out.println(newNumber);}
}

代码分析:

题目六:数字解密

代码:

package com.mohuanan.exercise;public class ExerciseTest07 {public static void main(String[] args) {int[] arr = {8, 3, 4, 6};//反转for (int i = 0, j = arr.length - 1; i < j; i++, j--) {//注意这里的循环条件 是 i<j 相当于左右指针int temp;temp = arr[i];arr[i] = arr[j];arr[j] = temp;}//由于之前是加密 余10 +5 所以要判断 并-5for (int i = 0; i < arr.length; i++) {if (arr[i] >= 0 && arr[i] <= 4) {arr[i] = arr[i] + 10;}arr[i] = arr[i] - 5;}//拼接int number = 0;for (int i = 0; i < arr.length; i++) {number = number * 10 + arr[i];}//输出System.out.println(number);}
}

代码分析:

1.反转数字使用两个指针,循环条件i<j,使用临时变量,作为两个数的交换

2.由于数字的范围只能是5到14(因为一个一位数子加上5的范围,0+5到9+5),所以判断当前数字为0到4时就加上10,

3.根据数组的长度来拼接number = number*10+arr[i]

题目七:抢红包

代码:

package com.mohuanan.exercise;import java.util.Random;public class ExerciseTest08 {public static void main(String[] args) {//数组奖池int[] arr = {2, 588, 888, 1000, 10000};//定义新数组 用于存储抽奖的结果int[] newArr = new int[arr.length];Random r = new Random();for (int i = 0; i < arr.length; i++) {int index = r.nextInt(arr.length);int prize = arr[index];while(contains(newArr,prize)){index = r.nextInt(arr.length);prize = arr[index];}newArr[i] = prize;}//遍历输出for (int i = 0; i < newArr.length; i++) {System.out.println("第"+(i+1)+"个抽出的是"+newArr[i]);}}//用于判断奖池是否存在public static boolean contains(int[] arr, int prize) {for (int i = 0; i < arr.length; i++) {if (arr[i] == prize) {return true;}}return false;}
}

优化版代码:

package com.mohuanan.exercise;import java.util.Random;public class ExerciseTest09 {public static void main(String[] args) {int[] arr = {2, 588, 888, 1000, 10000};//打乱数组里的元素Random r = new Random();for (int i = 0; i < arr.length; i++) {//根据 i 和 随机索引 进行交换int temp;//临时变量int randomIndex = r.nextInt(arr.length);//注意这里要给一个范围 arr.length 因为是从0开始的 所以0 1 2 3 4temp = arr[i];arr[i] = arr[randomIndex];arr[randomIndex] = temp;}//遍历输出for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}}

代码分析:

1.使用Random对象中的nextInt()方法,打乱数组的元素,根据i索引于随机索引进行交换

2.相比于上面的代码,少了(假设到了最后的一个数字,要一直索引,直到arr数组里的元素不与索引的相同)

难点:

1.有些人可能会疑惑,为什么这样子可以打乱数组的元素,

解释:

交换两个数字,数组中的元素,没有改变,改变的只是数组的元素的位置,但是数组的元素还是原来的那几个,

题目八:双色球彩票系统

代码:

package com.mohuanan.exercise;import java.util.Random;
import java.util.Scanner;public class ExerciseTest010 {public static void main(String[] args) {//1.生成中奖号码int[] arr = createNumber();for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();//2.用户输入号码int[] peopleArr = peopleInputNumber();//3.计算获奖情况//中奖的个数int redCount = 0;int blueCount = 0;//计算中红色球的个数 要长度-1for (int i = 0; i < arr.length-1; i++) {for(int j = 0;j<peopleArr.length-1;j++){//找到就 红色球+1 并退出循环,避免没有必要的运算if(arr[i]==peopleArr[j]){redCount++;break;}}}//计算中蓝色球的个数if(arr[arr.length-1]==peopleArr[peopleArr.length-1]){//注意是下标 所以-1blueCount++;}//根据红蓝球的个数 判断获奖情况switch(redCount){case 6:if(blueCount==1){System.out.println("恭喜你获得1000万 但是这是虚拟的 不要沉迷于");}else if(blueCount == 0){System.out.println("恭喜你获得500万 但是这是虚拟的 不要沉迷于");}break;case 5:if(blueCount==1){System.out.println("恭喜你获得3000元 但是这是虚拟的 不要沉迷于");}else if(blueCount == 0){System.out.println("恭喜你获得200元 但是这是虚拟的 不要沉迷于");}break;case 4:if(blueCount==1){System.out.println("恭喜你获得3000元 但是这是虚拟的 不要沉迷于");}else if(blueCount == 0){System.out.println("恭喜你获得10元 但是这是虚拟的 不要沉迷于");}break;case 3:if(blueCount==1){System.out.println("恭喜你获得10元 但是这是虚拟的 不要沉迷于");}break;case 2:case 1:if(blueCount==1){System.out.println("恭喜你获得5元 但是这是虚拟的 不要沉迷于");}break;default :System.out.println("没中,再接再厉,下次再买,才怪,不要再买了");}}//用户输入号码public static int[] peopleInputNumber(){//动态定义一个数组int[] arr = new int[7];Scanner sc = new Scanner(System.in);//用户录入6个红球for (int i = 0; i < arr.length-1; ) {boolean flag = false;System.out.print("请输入您的第"+(i+1)+"个红球号码");int redNumber = sc.nextInt();// 如果录入的数字不存在就赋值   注意数字的范围(1-33)if((!judgeNumber(arr,redNumber)) && (redNumber>=1 && redNumber <=33)){arr[i] = redNumber;i++;//录入新的数字才 i++ 即录入下一个数字flag = true;}if(flag==false){System.out.print("您输入的号码出错");}}//用户录入蓝球System.out.print("请输入您的蓝球号码:");int blueNumber = sc.nextInt();// 注意数字的范围(1-16)if(blueNumber>=1 && blueNumber <=16){arr[arr.length-1] = blueNumber;}else{while(true){System.out.print("您的号码超出范围 请重新输入:");blueNumber = sc.nextInt();if(blueNumber>=1 && blueNumber <=16){arr[arr.length-1] = blueNumber;break;}}}return arr;}//生成中奖号码public static int[] createNumber() {//创建一个动态长度为7的数组int[] arr = new int[7];Random r = new Random();//红球号码for (int i = 0; i < arr.length - 1; ) {//因为6个红球 一个蓝 所以-1int redNumber = r.nextInt(33) + 1;//这里加1 使范围从 1到33//如果存在  就再 随机//如果不存在 就赋值 并 i++if (!judgeNumber(arr, redNumber)) {arr[i] = redNumber;i++;// 赋值后再i++ 注意i++放在这里 这是新的数字 才让 i++}}//蓝球号码int blueNumber = r.nextInt(16) + 1;arr[arr.length-1]= blueNumber;return arr;}//判断是否存在public static boolean judgeNumber(int[] arr, int redNumber) {for (int i = 0; i < arr.length; i++) {if (arr[i] == redNumber) {return true;}}return false;}
}

运行结果:

代码分析:

1. 根据需求,解决问题,分为3个步骤,

        1.1 生成一个获奖的代码,方法: 使用Random对象,动态创建一个长度为7(6红1蓝)的数组,当随机产生的数字要在范围内(红:1-33 蓝:1-16),并判断当前的数字在数组中是否存在,如果不存在,就将当前数字赋值到数组里,并i++,使将6个红球都赋值到数组里,最后再将蓝球号码赋值到数组的最后一个元素

        1.2 用户录入他的号码,方法: 动态创建一个长度为7(6红1蓝)的数组,使用Scanner对象,将用户录入的数字赋值到数组里面,(当随机产生的数字要在范围内(红:1-33 蓝:1-16),并判断当前的数字在数组中是否存在,如果不存在,就将当前数字赋值到数组里)使用while(true)使代码的健壮性更好,当用户输入的数字正确时,break,跳出循环

        1.3 定义redCount,blueCount,使用两个for计算中奖的红蓝球的个数,再根据中奖的红蓝球的个数,使用switch和if的嵌套来得出用户中奖的情况

2. 为了使代码更加的"好",可以增加一些注释和提高代码执行的效率,为了便于以后的维护,变量名和方法名一定要用通俗易懂的命名规则(驼峰原则) ,

题目九:买飞机票

代码:

package com.mohuanan.exercise;import java.util.Scanner;public class ExerciseDemo03 {public static void main(String[] args) {//创建一个Scanner对象Scanner sc = new Scanner(System.in);//原来票价System.out.println("请输入您的票价");int ticket = sc.nextInt();//月份System.out.println("请输入您的月份");int month = sc.nextInt();//舱位System.out.println("请输入您的舱位,0 头等舱 1经济舱");int seat = sc.nextInt();//旺季if(month >= 5 && month <= 10){//头等舱if(seat == 0){ticket = (int)(ticket * 0.9);//数据类型强制转化}else if(seat == 1){ticket = (int)(ticket * 0.85);}else{System.out.println("没有这个舱位");}//淡季}else if((month >= 1 && month <= 4) || month >= 11 && month <= 12){if(seat == 0){ticket = (int)(ticket * 0.7);//数据类型强制转化}else if(seat == 1){ticket = (int)(ticket * 0.65);}else{System.out.println("没有这个舱位");}}else{System.out.println("抱歉,您输入的月份不对");}System.out.println(ticket);}
}

代码分析:

                使用了if条件的嵌套,逐步细化问题,

题目十:二维数组

代码:

package com.mohuanan.exercise;public class ExerciseTest012 {public static void main(String[] args) {//静态定义一个二维数组int[][] yearArrArr = {{1, 2, 3},{4, 5, 6},{7, 8, 9},{10, 11, 12}};//计算一年的和int yearSum = 0;for (int i = 0; i < yearArrArr.length; i++) {//int[] quarteArr = yearArrArr[i];int sum = getSum(yearArrArr[i]);System.out.println("第" + (i + 1) + "个季度和为" + sum);yearSum = yearSum + sum;}System.out.println("一年的和为"+yearSum);}//求每一个季度的销售额public static int getSum(int[] arr) {int sum = 0;for (int i = 0; i < arr.length; i++) {sum = sum + arr[i];}return sum;}
}

代码分析:

1.静态定义一个二维数组,使用getSum()方法求每一个季度的和,并返回给sum

2.使用一个for循环,求每一个季度的和,并定义一个yearSum的变量存储一年的和,每一次循环把每一个季度的和赋值给yearSum,并累加

目录

for循环的嵌套

题目一: 求101到200之间的素数的个数,并打印

代码分析:

注意点:

题目二:开发验证码

代码分析:

题目三:数组元素的复制

代码分析:

题目四:评委打分

健壮版代码:

代码分析:看源码

注意点:

题目五:数字加密

优化版代码:

代码分析:

题目六:数字解密

代码分析:

题目七:抢红包

优化版代码:

代码分析:

难点:

解释:

题目八:双色球彩票系统

运行结果:

代码分析:

题目九:买飞机票

代码分析:

题目十:二维数组

代码分析:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/754882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud Sleuth 分布式请求链路跟踪

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十篇&#xff0c;即介绍 Sleuth 分布式请求链路跟踪。 二、概述 2.1 出现的原因 在微服务框架中&…

万界星空科技WMS仓储管理包含哪些具体内容?

wms仓库管理是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统&#xff0c;有效控制并跟踪仓库业务的物流和成本管理全过程&#xff0c;实现完善的企业仓…

从WAF到WAAP的研究

对于需要保护Web应用程序和API的企业来说&#xff0c;从WAF到WAAP的转变已成为一种必然趋势。采用WAAP平台可以更为全面和高效地保护Web应用程序和API的安全&#xff0c;同时避免了高昂的维护成本和攻击绕过WAF的风险。 网络安全领域的发展趋势是从WAF到WAAP的转变。WAF作为传…

如何利用IP地址分析风险和保障网络安全

随着网络攻击的不断增加和演变&#xff0c;保障网络安全已经成为了企业和组织不可忽视的重要任务。在这样的背景下&#xff0c;利用IP地址分析风险和建立IP风险画像标签成为了一种有效的手段。本文将深入探讨IP风险画像标签的作用以及如何利用它来保障网络安全。 IP风险画像查…

一键制作iOS上架App Store描述文件教程

摘要 本篇博文详细介绍了在iOS上架过程中所需的基础项目&#xff0c;包括IOS生产环境证书、APPID包名制作以及APP的描述文件。通过使用appuploader进行证书制作和上传IPA到App Store&#xff0c;能够快速掌握真机测试和上架流程。 引言 在iOS应用开发过程中&#xff0c;正确…

PHP反序列化--引用

一、引用的理解&#xff1a; 引用就是给予一个变量一个恒定的别名。 int a 10; int b &a; a 20; cout<<a<<b<<endl; 输出结果 : a20、b20 二、靶场复现&#xff1a; <?php highlight_file(__FILE__); error_reporting(0); include("flag.p…

android 顺滑滑动嵌套布局

1. 背景 最近项目中用到了上面的布局&#xff0c;于是使用了scrollviewrecycleview&#xff0c;为了自适应高度&#xff0c;重写了recycleview&#xff0c;实现了高度自适应&#xff1a; public class CustomRecyclerView extends RecyclerView {public CustomRecyclerView(Non…

【HTTP】面试题整理

HTTP&#xff1a;什么是队头阻塞以及怎么解决&#xff1f; 队头阻塞&#xff08;Head-of-Line Blocking&#xff09; 计算机网络中的一个概念&#xff0c;特别是在处理HTTP请求时。当多个HTTP请求被发送到一个服务器&#xff0c;并且这些请求被放置在一个队列中等待处理时&…

iview 不请求接口修改table本地数据 不刷新的本质问题以及最简单的解决方法

在日常的开发中&#xff0c;相信大家都遇到过这样的问题&#xff0c;通过请求接口&#xff0c;而后赋值table数据&#xff0c;页面都是正常的刷新渲染的&#xff0c;但是有时&#xff0c;不需要请求接口&#xff0c;只修改本地的固定数据的话&#xff0c;页面的table表格数据却…

【每日力扣】 修剪二叉搜索树与复原 IP 地址

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害。 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&am…

Git 仓库瘦身与 LFS 大文件存储

熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久&#xff0c;追踪的文件越来越多&#xff0c;git 存储的 objects 数量会极其庞大&#xff0c;每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件&#xff0c;且 git push…

Linux系统(四)- 进程初识 | 环境变量 | 进程地址空间

~~~~ 前言冯诺依曼体系结构&#xff08;重要&#xff09;总览CPU工作方式什么是指令集&#xff1f;CPU为什么只和内存打交道&#xff08;数据交换&#xff09;&#xff1f;木桶效应&#xff1a;在数据层面的结论程序运行为什么要加载到内存&#xff1f; 进一步理解计算机体系结…

MySQL—数据库导入篇

什么是数据库&#xff1f; 数据库是干啥的&#xff1f; 数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库。 MySQL属于哪一类数据库&#xff1f; MySQL是一种关系型数据库。所谓的关系型数据库&#xff0c;是建立在关系模型基础上的数据库&a…

Cesium:绘制一个 3DTiles 对象的外包盒顶点

作者:CSDN @ _乐多_ 本文将介绍如何使用 Cesium 引擎根据模型的中心坐标,半轴信息,绘制一个 3DTiles 对象的外包盒顶点。 外包盒是一个定向包围盒(Oriented Bounding Box),它由一个中心点(center)和一个包含半轴(halfAxes)组成。半轴由一个3x3的矩阵表示,这个矩阵…

Java安全基础 关键概念过关

Java安全基础 关键概念汇总 文章目录 Java安全基础 关键概念汇总前置知识1.构造器this以及包的使用2.继承3.重写/ 重载 / super4.多态5.区分和equals方法6.toString的使用7.Object的概念8.static,final,代码块static代码块final 9.动态代理10.类的动态加载1)类加载器含义&#…

卷积篇 | YOLOv8改进之C2f模块融合SCConv | 即插即用的空间和通道维度重构卷积

前言:Hello大家好,我是小哥谈。SCConv是一种用于减少特征冗余的卷积神经网络模块。相对于其他流行的SOTA方法,SCConv可以以更低的计算成本获得更高的准确率。它通过在空间和通道维度上进行重构,从而减少了特征图中的冗余信息。这种模块的设计可以提高卷积神经网络的性能。本…

如何正确从github上下载数据集等内容

文章目录 一、现象&#xff1a;二、解决方案 一、现象&#xff1a; 数据集点击下载没有反应&#xff0c;那需要怎么下载数据集呢&#xff1f; 二、解决方案 输入以下命名行&#xff0c;亲测有效 git clone https://github.com/mymusise/ChatGLM-Tuning.git

【ADF4351】使用FPGA进行SPI寄存器配置、使用FPGA计算各个频率的频点,ADF4351配置程序

简介 特性 输出频率范围&#xff1a;35 MHz至4,400 MHz 小数N分频频率合成器和整数N分频频率合成器 具有低相位噪声的VCO 可编程的1/2/4/8/16/32/64分频输出 典型抖动&#xff1a;0.3 ps rms EVM(典型值&#xff0c;2.1 GHz)&#xff1a; 0.4% 电源&#xff1a;3.0 V至3.6 V …

Selenium 自动化 —— 使用WebDriverManager自动下载驱动

上一篇文章 入门和 Hello World 实例 中&#xff0c;我们提供了一个最简单的 Selenium 上手的例子。 但是某一天&#xff0c;突然发现相同的代码居然运行报错了。这是怎么回事呢&#xff1f; 日志排查 日志中其实提示的很明显了&#xff1a;Chrome浏览器和Chrome WebDriver的…

adobe animate 时间轴找不到编辑多个帧按钮

如题&#xff0c;找了半天&#xff0c;在时间轴上找不到编辑多个帧按钮,导致无法批量处理帧 然后搜索发现原来是有些版本被隐藏了&#xff0c;需要再设置一下 勾选上就好了