当前位置: 首页 > article >正文

七、Lua字符串

文章目录

  • 一、字符串
    • (一)单引号间的一串字符
    • (二)local str = "Hello, "
    • (三)[[ 与 ]] 间的一串字符
    • (四)例子
  • 二、字符串长度计算
    • (一)string.len
    • (二)包含中文的字符串使用 utf8.len函数:
    • (三)转义字符
  • 三、字符串操作
  • 四、字符串截取
  • 五、字符串大小写转换
  • 六、字符串查找与反转

一、字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。
在 Lua 中,字符串是一种基本的数据类型,用于存储文本数据。
Lua 中的字符串可以包含任意字符,包括字母、数字、符号、空格以及其他特殊字符。
Lua 语言中字符串可以使用以下三种方式来表示:

(一)单引号间的一串字符

local str1 = 'This is a string.'
local str2 = "This is also a string."

(二)local str = "Hello, "

str = str .. "World!"  -- 创建一个新的字符串并将其赋值给str
print(str)  -- 输出 "Hello, World!"

(三)[[ 与 ]] 间的一串字符

local multilineString = [[
This is a multiline string.
It can contain multiple lines of text.
No need for escape characters.
]]

print(multilineString)

(四)例子

str = 'hello,wonyoung'
print(str);
str = "jang won young"
print(str);
str = [["jang won young"]]
print(str);

在这里插入图片描述

二、字符串长度计算

在 Lua 中,要计算字符串的长度(即字符串中字符的个数),你可以使用 string.len函数或 utf8.len 函数,包含中文的一般用 utf8.len,string.len 函数用于计算只包含 ASCII 字符串的长度。

(一)string.len

local myString = "Hello, RUNOOB!"

-- 计算字符串的长度(字符个数)
local length = string.len(myString)

print(length) -- 输出 14

在这里插入图片描述
以上实例的 myString 字符串只包含 ASCII 字符,因此 string.len 函数可以准确地返回字符串的长度。

(二)包含中文的字符串使用 utf8.len函数:

在这里插入图片描述

(三)转义字符

用于表示不能直接显示的字符,比如后退键,回车键等,如在字符串转换双引号可以使用 \。

所有的转义字符和所对应的意义:
在这里插入图片描述

三、字符串操作

序号方法
1string.upper(argument):字符串全部转为大写字母。
2string.lower(argument):字符串全部转为小写字母。
3string.gsub(mainString,findString,replaceString,num)在字符串中替换。mainString 为要操作的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换),如:> string.gsub("aaaa","a","z",3);zzza 3
4string.find (str, substr, [init, [plain]])在一个指定的目标字符串 str 中搜索指定的内容 substr,如果找到了一个匹配的子串,就会返回这个子串的起始索引和结束索引,不存在则返回 nil。init 指定了搜索的起始位置,默认为 1,可以一个负数,表示从后往前数的字符个数。plain 表示是否使用简单模式,默认为 false,true 只做简单的查找子串的操作,false 表示使用使用正则模式匹配。以下实例查找字符串 “Lua” 的起始索引和结束索引位置:> string.find("Hello Lua user", "Lua", 1) 7 9
5string.reverse(arg)字符串反转> string.reverse("Lua")auL
6string.format(…),返回一个类似printf的格式化字符串> string.format("the value is:%d",4)the value is:4

四、字符串截取

字符串截取使用 sub() 方法。

string.sub() 用于截取字符串,原型为:

string.sub(s, i [, j])

参数说明:
s:要截取的字符串。
i:截取开始位置。
j:截取结束位置,默认为 -1,最后一个字符。

-- 字符串
local sourcestr = "prefix--runoobgoogletaobao--suffix"
print("\n原始字符串", string.format("%q", sourcestr))

-- 截取部分,第4个到第15个
local first_sub = string.sub(sourcestr, 4, 15)
print("\n第一次截取", string.format("%q", first_sub))

-- 取字符串前缀,第1个到第8个
local second_sub = string.sub(sourcestr, 1, 8)
print("\n第二次截取", string.format("%q", second_sub))

-- 截取最后10个
local third_sub = string.sub(sourcestr, -10)
print("\n第三次截取", string.format("%q", third_sub))

-- 索引越界,输出原始字符串
local fourth_sub = string.sub(sourcestr, -100)
print("\n第四次截取", string.format("%q", fourth_sub))

在这里插入图片描述

五、字符串大小写转换

string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))

在这里插入图片描述

六、字符串查找与反转

string = "Lua Tutorial"
-- 查找字符串
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("新字符串为",reversedString)

在这里插入图片描述


http://www.kler.cn/a/149913.html

相关文章:

  • DAY6 线程
  • 给查询业务添加redis缓存和缓存更新策略
  • PHP API如何使用access_token开放接口有效期
  • yolov7论文翻译
  • 计算机新手练级攻略——如何搜索问题
  • 微服务电商平台课程三:搭建后台服务
  • 工艺系统所管理数字化实践
  • spark-submit
  • 靡靡之音 天籁之声 ——Adobe Audition
  • stm32 计数模式
  • Django路由分发
  • 荣耀IPO站上新起点:市场望眼欲穿,发展未来可期
  • Redis-Day1基础篇(初识Redis, Redis常见命令, Redis的Java客户端)
  • Sass基础知识之【变量】
  • 【送书活动二期】Java和MySQL数据库中关于小数的保存问题
  • Fuzz进阶教学——人工智能在模糊测试中的应用
  • Linux使用宝塔面板+Discuz+cpolar内网穿透工具搭建可公网访问论坛
  • nodejs669在线图书借阅管理系统vue前端
  • 第20章 多线程
  • Vue框架学习笔记——Vue实例中el和data的两种写法
  • Redis 基础、字符串、哈希、有序集合、集合、列表以及与 Jedis 操作 Redis 和与 Spring 集成。
  • 【备忘录】快速回忆ElasticSearch的CRUD
  • Linux: Ftrace: function_graph 里面有irq处理的函数
  • Linux使用固定ip地址
  • Linux MYSQL-5.7.23-rpm安装(附带安装包)
  • 基于深度学习的点云三维目标检测方法综述