百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

「按键精灵 VS 易语言」数组操作 按键精灵和易语言哪个容易过检测

yuyutoo 2024-10-23 16:35 4 浏览 0 评论

今天和大家一起分享按键精灵和易语言分别在数组使用方面的种种区别和注意事项!

要求 : 定义一个文本型的变量, 把这个字符串中的每一个字符取出来放到数组内,然后删除这个数组指定的下标,形成一个新数组!


分析: 如果单以是为了完成这道题目作为出发点来看,我会选择使用易语言来完成,原因很简单.核心库(数组操作)里有直接封装好的命令供我们使用,简单方便. 如果以学习的角度作为出发点,那就要选择使用按键精灵了,原因同样简单,因为按键精灵没有提供相关的命令.我们能做的只有写一个函数出来解决问题.

所有源码均可在群内下载: 群号 31690552


下边我们开始第一步:把字符串内的每一个字符取出来放到数组内

按键精灵代码 如下图:

定义一个文本型的变量a,分别使用len函数和mid函数来获取这个字符串内的每一个字符,然后保存到arr数组内,这里需要说明的是,如果是在循环内定义这个动态数组的话,一定记得使用 preserve 来保护一下这个数组之前赋的值,.如果不保护,那么很遗憾,之前所有赋的值都是空值. 如下图所示:

当然,我们也可以直接在循环外定义这个数组,那么也就无须保护了,如下图所示:


下边我们来写在易语言中的这一步代码:

为了保持2者的可对比性,我这里都使用了同样的变量名, 这个时候易语言在数组操作方面的便捷性已经初露锋芒. 在按键精灵中,我们实现这一步用的是给数组内的元素赋值的方法来实现. 如果你想要增加数组元素,那么我们要重新定义数组的下标长度才可以,而易语言这时候就不需要了, 我们只需初始化数组的时候,把数组定义为动态数组,下标为0即可,

然后通过加入成员这条命令,数据将自动加入到数组的尾部,并通过重新自动自定义数组来增加数组的下标!

这里使用了到全角的这条命令. 这是因为在易语言中封装的Len函数和在按键精灵中封装的Len函数细微差别所致.当然我们都知道,一个汉字占2个长度. 可是在按键精灵中做了处理,每位字符都只占一个长度.这样就不用在考虑其他的因素了,个人感觉这一点比较爽.

当然,如果你一定要用类似按键精灵中给元素赋值的方法来实现, 我也无话可说,毕竟条条道路都通罗马.只要能实现就好.

下图为通向罗马的另一条路:

所有源码均可在群内下载: 群号 31690552

通过调试可以得出,这条道路同样通向罗马城. 至于大家走哪条路,完全凭个人喜欢而定.这里不做评价


紧接着我们到了第二步 . 删除数组指定下标形成一个新数组:

首先已按键精灵为例.因为在按键精灵中没有直接删除数组指定下标的命令,我们还需要自己写函数,所以这里就先以按键为先了哦. (排名不分先后)

直接上代码图.然后具体分析:

我们先不看其它.先看上图数字所指几处.第1处,function 说明它是一个函数,既然是函数,那么它一定会有返回值,当然,也不是一定要有返回值. 如果你写的函数没有返回值,那么我建议你还是用sub替代的好,(这里不多做解释) ,既然有返回值,那么第一反应就是去看第3处所指向的代码 . 从代码可以看出,这个函数存在2种返回结果. 返回的都是数组 . 回过头来看第2处. 我们可以知道这个函数有2个参数,第1个传的是数组. 第2个传的是整数型的数组下标. 建议大家查看函数的时候先看这3点,然后在具体查看其中代码哦!


进入函数内部代码区:

首先判断了一下传入要删除这个数组的下标是否在范围内.如果不在范围内,直接返回了这个原数组, 也就是上图代码第19行所示!

如果传入的第2个参数符合条件的话,这里定义了一个乱码组成的文本变量 . 并且把变量值赋给了我们要删除的数组元素, 通过join函数把这个数组合并成一个字符串,然后我们在进入处理.

如下图所示:

由上图中可以得出如下信息:

在第6行调用了这个函数,传入了2个参数,第一个为数组arr ,第二个为要删除的数组下标,我这里传入的是下标2. 第13行的调试结果如红框所示.已经把下标为2的数组元素替换成了指定的内容.

这时候我们在来看一下这个函数代码图:

如下图:

上图红框所示区域内,通过了使用replace替换函数, left ,right 等函数 ,把这个字符串做了处理, 如果不做如上处理,将会出现以下3种情况, 如果所示:

通过对这个字符串的处理,把前后中间多余的"-"符号去掉,这时候就已经可以对这个字符串进行分割处理,使之生成一个新数组,然后返回给这个函数了!

最后来看一下效果 :

大家是不是感觉有点小麻烦, 那下边我们来看一下不麻烦的哦


易语言中实现这一步的代码图:

(这里需要说一下的是:按键精灵中数组下标是从0开始,易语言中的数组下标是从1开始)

感谢:白小丁同学

相关推荐

java把多张图片导入到PDF文件中(java如果导入图片到项目)

packagecom.mlh.utils;importcom.itextpdf.text.*;importcom.itextpdf.text.Font;importcom.itextp...

聊聊langchain4j的AiServicesAutoConfig

序本文主要研究一下langchain4j-spring-boot-starter的AiServicesAutoConfig...

Spring 中三种 BeanName 生成器!(spring生成bean过程)

无论我们是通过XML文件,还是Java代码,亦或是包扫描的方式去注册Bean,都可以不设置BeanName,而Spring均会为之提供默认的beanName,今天我们就来看看Spr...

Zookeeper实现微服务统一配置中心

Zookeeper介绍本质它是一个分布式服务框架,是ApacheHadoop的一个子项目...

Spring cloud Gateway 动态路由(springboot gateway 动态路由)

一、分析过程...

从Nacos客户端视角来分析一下配置中心实现原理

目录...

Python 中容易被新手忽略的问题(python容易犯的错误)

设置全局变量有时候设置全局变量的需求并不是直接赋值,而是想从某个数据结构里引用生成,可以用下面这两种方法,推荐第二种,golbals()支持字典用法很方便。...

Springboot实现对配置文件中的明文密码加密

我们在SpringBoot项目当中,会把数据库的用户名密码等配置直接放在yaml或者properties文件中,这样维护数据库的密码等敏感信息显然是有一定风险的,如果相关的配置文件被有心之人拿到,必然...

是时候丢掉BeanUtils了(丢掉了时间)

前言为了更好的进行开发和维护,我们都会对程序进行分层设计,例如常见的三层,四层,每层各司其职,相互配合。也随着分层,出现了VO,BO,PO,DTO,每层都会处理自己的数据对象,然后向上传递,这就避免不...

EasyExcel自定义合并单元格多行合并根据自定义字段

第一种方式实现通过定义注解+实现RowWriteHandler接口中的afterRowDispose方法来动态合并行根据指定的key可以是单个字段也可以是多个字段也可以根据注解指定。注解方式使用参考原...

太香了!女朋友熬夜帮我整理的Spring Boot - Banner 笔记,分享给你

上一篇分享的是《Java避坑指南!IDEA查看.class文件源码下载失败问题汇总》,这篇给大家分享《SpringBoot-自定义Banner图案》。...

基于SpringCloud的enum枚举值国际化处理实践

背景选用SpringCloud框架搭建微服务做业务后台应用时,会涉及到大量的业务状态值定义,一般常规做法是:持久层(数据库)存储int类型的值后台系统里用阅读性好一点儿的常量将int类型的值做一层映射...

Lucene就是这么简单(好女婿你以后就是妈妈的老公了)

什么是Lucene??Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家DougCutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和...

注解@Autowired和@Resource的区别总结

零、前言@Autowired和@Resource注解都可以在Spring应用中进行声明式的依赖注入。以前都是看的网上关于两者的区别,但是实际和网上说的有出入,故从源码角度进行分析、验证。...

100个Java工具类之73:系统信息获取工具类SystemUtils

SystemUtils是一个功能强大的工具类。可以获取系统属性、检测java版本、处理跨平台文本文件,合理地使用此类,可以使代码更健壮,系统更安全。...

取消回复欢迎 发表评论: