Lua语言中常用的字符串操作函数

 string.sub(s, i, j)

  • 功能: 截取字符串 s 中从位置 i 到位置 j 的子字符串。

  • local s = "Hello, Lua!"
    print(string.sub(s, 1, 5))  -- 输出 "Hello"
    print(string.sub(s, 8, 11)) -- 输出 "Lua!"

string.len(s)

 功能:将字符串长度返回,如果换行符没有明显写出来,就不会加入计算,如果说换行符已经明显写出来了,那么要加入计算,比如下面如果写了"hello, lua!\n",那么这时候就有12个字符

local s = "Hello, Lua!"
print(string.len(s))  -- 输出 11

string.lower(s)

将字符串转换成小写

local s = "Hello, Lua!"
print(string.lower(s))  -- 输出 "hello, lua!"

string.upper(s)

将字符串转换成大写

local s = "Hello, Lua!"
print(string.upper(s))  -- 输出 "HELLO, LUA!"

string.find(s, pattern)

功能:这个函数是用来查找函数中的字符串,参数是字符串和要查找的字符,有两个返回值,是一个区间范围,即查找到字符串的(开始位置-结束位置),如果没有找到,就返回nil

local s = "Hello, Lua!"
local start, finish = string.find(s, "Lua")
print(start, finish)  -- 输出 8 10

 string.match(s, pattern)

功能:这个函数是用来查找指定字符串,返回值就是查找到的字符串,如果没有查找到,就返回nil

local s = "Hello, Lua!"
local result = string.match(s, "Lua")
print(result)  -- 输出 "Lua"

string.gsub(s, pattern, repl)

功能:把指定字符串当中的某个字符串替换成想要替换的新字符串,返回值有两个,一个是返回被替换之后的整个字符串,一个是字符串当中被替换掉的次数

local s = "Hello, Lua!"
local result, count = string.gsub(s, "Lua", "World")
print(result)  -- 输出 "Hello, World!"
print(count)   -- 输出 1

string.rep(s, n)

将字符串重复指定次数

local s = "Lua"
print(string.rep(s, 3))  -- 输出 "LuaLuaLua"

string.reverse(s)

将字符串反转

local s = "Hello, Lua!"
print(string.reverse(s))  -- 输出 "!auL ,olleH"

string.format(format, ...)

格式化字符串,相当于c中的printf

local name = "Lua"
local version = 5.4
print(string.format("Welcome to %s %0.1f!", name, version))  -- 输出 "Welcome to Lua 5.4!"

string.char(...)

功能: 将整数转换为对应的字符。f f f

  • print(string.char(72, 101, 108, 108, 111))  -- 输出 "Hello"

string.byte(s, i, j)

返回字符串 s 中从位置 i 到位置 j 的字符的 ASCII 码。

local s = "Hello"
print(string.byte(s, 1, 3))  -- 输出 72 101 108

string.gmatch(s, pattern)

功能: 返回一个迭代器,用于遍历字符串 s 中所有匹配 pattern 的子字符串

local s = "Hello, Lua!"
for word in string.gmatch(s, "%a+") doprint(word)
end
-- 输出:
-- Hello
-- Lua

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

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

相关文章

llm大模型学习

llm大模型 混合专家模型(MoE)MoE结构路由router专家expertSwitch Transformer的典型MOE模型最后MoE总结 混合专家模型(MoE) 模型规模是提升LLM大语言模型性能的关键因素,但也会增加计算成本。Mixture of Experts (MoE…

Linux入门攻坚——43、keepalived入门-1

Linux Cluster(Linux集群的类型):LB、HA、HPC,分别是负载均衡集群、高可用性集群、高性能集群。 LB:lvs,nginx HA:keepalived,heartbeat,corosync,cman HP&am…

HTML5 动画效果:淡入淡出(Fade In/Out)详解

HTML5 动画效果:淡入淡出(Fade In/Out)详解 淡入淡出(Fade In/Out)是一种常见的动画效果,使元素逐渐显现或消失,增强用户体验。以下是淡入淡出的详细介绍及实现示例。 1. 淡入淡出的特点 平滑…

YOLOv8/YOLOv11改进 添加CBAM、GAM、SimAM、EMA、CAA、ECA、CA等多种注意力机制

目录 前言 CBAM GAM SimAM EMA CAA ECA CA 添加方法 YAML文件添加 使用改进训练 前言 本篇文章将为大家介绍Ultralytics/YOLOv8/YOLOv11中常用注意力机制的添加,可以满足一些简单的涨点需求。本文仅写方法,原理不多讲解,需要可跳…

Go语言的 的多态性(Polymorphism)基础知识

Go语言的多态性(Polymorphism)基础知识 在编程语言中,多态性是一个核心概念,它允许同一接口被不同的数据类型所实现,从而在不影响代码结构的情况下增强代码的灵活性和可扩展性。在Go语言中,多态性通过接口…

nginx运行之后显示的是上一个项目,如何解决

重启 Nginx 使配置生效 修改 Nginx 配置后,你需要重新加载或重启 Nginx,以使配置生效。执行以下命令: sudo nginx -t # 测试配置是否正确 sudo systemctl restart nginx # 重启 Nginxbash 复制代码 检查浏览器缓存 浏览器可能缓存了旧…

与 Oracle Dataguard 相关的进程及作用分析

与 Oracle Dataguard 相关的进程及作用分析 目录 与 Oracle Dataguard 相关的进程及作用分析与 Oracle Dataguard 相关的进程及作用分析一、主库的进程1、LGWR 进程2、ARCH进程3、LNS 进程 二、备库的进程1、RFS 进程2、ARCH3、MRP(Managed Recovery Process&#x…

【C语言】_指针与数组

目录 1. 数组名的含义 1.1 数组名与数组首元素的地址的联系 1.3 数组名与首元素地址相异的情况 2. 使用指针访问数组 3. 一维数组传参的本质 3.1 代码示例1:函数体内计算sz(sz不作实参传递) 3.2 代码示例2:sz作为实参传递 3…

解决“KEIL5软件模拟仿真无法打印浮点数”之问题

在没有外部硬件支持时,我们会使用KEIL5软件模拟仿真,这是是仿真必须要掌握的技巧。 1、点击“Project”,然后点击“Options for target 项目名字”,点击“Device”,选择CPU型号。 2、点击“OK” 3、点击“Target”,勾选“Use Mi…

donet (MVC)webAPI 的接受json 的操作

直接用对象来进行接收&#xff0c;这个方法还不错的。 public class BangdingWeiguiJiluController : ApiController{/// <summary>/// Json数据录入错误信息/// </summary>/// <param name"WeiguiInfos"></param>/// <returns></r…

设计模式与游戏完美开发(3)

更多内容可以浏览本人博客&#xff1a;https://azureblog.cn/ &#x1f60a; 该文章主体内容来自《设计模式与游戏完美开发》—蔡升达 第二篇 基础系统 第五章 获取游戏服务的唯一对象——单例模式&#xff08;Singleton&#xff09; 游戏实现中的唯一对象 在游戏开发过程中…

pygame飞机大战

飞机大战 1.main类2.配置类3.游戏主类4.游戏资源类5.资源下载6.游戏效果 1.main类 启动游戏。 from MainWindow import MainWindow if __name__ __main__:appMainWindow()app.run()2.配置类 该类主要存放游戏的各种设置参数。 #窗口尺寸 #窗口尺寸 import random import p…

thinkphp通过html生成pdf

thinkphp 生成pdf {__NOLAYOUT__} <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>合同模板</title><style>/*打印内容*/media print {page {size: A4 landscape; /* auto is the initi…

如何让用户在网页中填写PDF表格?

在网页中让用户直接填写PDF表格&#xff0c;可以大大简化填写、打印、扫描和提交表单的流程。通过使用复选框、按钮和列表等交互元素&#xff0c;PDF表格不仅让填写过程更高效&#xff0c;还能方便地在电脑或移动设备上访问和提交数据。 以下是在浏览器中显示可填写PDF表单的四…

ThinkPHP 8高效构建Web应用-获取请求对象

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

软件架构的康威定律:AI如何重构团队协作模式

1. 引言 康威定律&#xff0c;一个简洁却深刻的观察&#xff1a;任何组织设计出的系统&#xff0c;其结构都与组织自身的沟通结构保持一致。这意味着&#xff0c;一个团队的沟通方式、组织结构直接影响着最终产品的架构。这在软件开发领域尤为明显。一个沟通效率低下的团队&am…

23.行号没有了怎么办 滚动条没有了怎么办 C#例子

新建了一个C#项目&#xff0c;发现行号没有了。 想把行号调出来&#xff0c;打开项目&#xff0c;选择工具>选项> 如下图&#xff0c;在文本编辑器的C#里有一个行号&#xff0c;打开就可以了 滚动条在这里&#xff1a;

30天开发操作系统 第 12 天 -- 定时器

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…

el-table 实现纵向多级表头

为了实现上图效果&#xff0c;最开始打算用el-row、el-col去实现&#xff0c;但发现把表头和数据分成两大列时&#xff0c;数据太多时会导致所在格高度变高。但由于每一格数据肯定不一样&#xff0c;为保持高度样式一致&#xff0c;就需要我们手动去获取最高格的高度之后再设置…

ES_如何设置ElasticSearch 8.0版本的匿名访问以及https_http模式的互相切换

总结&#xff1a; 设置匿名访问&#xff0c;只需要设置xpack.security.authc.anonymous.username和xpack.security.authc.anonymous.roles参数就行&#xff0c;设置好后&#xff0c;可以匿名访问也可以非匿名访问&#xff0c;但是非匿名访问的情况下必须保证用户名和密码正确 取…