CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
入门夯实996引擎string.sub负下标

【入门夯实】string.sub的负下标:从串尾截取的写法

2026-09-25 14:46 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本入门夯实996引擎Luastring.sub负下标

学员常见误区

想取字符串末尾几位,学员用 #s 减法手算起点,繁琐且容易差一;负下标一行搞定却没人敢用——误以为负数会像数组一样越界报错。实际 sub 的负下标从 -1(末字符)倒数,超界时静默收缩到边界,不报错。错误场景:

lua
local code = "ART260925"
print(string.sub(code, #code - 3))

能跑,但每次都要心算长度减法;换成 string.sub(code, -4) 一目了然。

正确姿势

尾部截取直接负下标,头部截取正下标,区间混用也合法。规范写法。示例代码如下:

lua
local code = "ART260925"
print(string.sub(code, 1, 3))
print(string.sub(code, -4))

输出 ART 与 0925——前 3 位是服务器标记,后 4 位是流水尾号。

引擎验证

三步验证:用裁决之杖的装备编号串做前缀校验(前 3 位是分类标记);负下标取末 4 位做尾号比对;验证越界行为——string.sub(code, 5, 100) 只截到末尾、不报错,超长请求静默收缩。

举一反三

负下标与正起点组合可表达"截到倒数第 n 个之前"。示例代码如下:

lua
local code = "ART260925"
print(string.sub(code, 1, -5))

1 到 -5 表示从头部截到倒数第 5 个字符之前,输出 ART26——区间两端各自独立,一头固定一头倒数。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

帮会运镖:镖车护送与劫镖的判定规则

【游戏】 一、一行代码拆解:hp = 10000 + teamN 5000 —— 运镖劫镖的全部骨架:镖车按护送人数增强血量…

2026-09-26 22:53 996 技术组 · 0 阅读
进阶实战语法算法

Lua线性建堆:自底向上的堆构造

【语法】 一、隐蔽陷阱:逐个插入建堆要 n 次上浮;自底向上从末个非叶子节点倒序下沉,一遍线性把乱序表调成合法堆。 二、底层…

2026-09-26 22:53 996 技术组 · 0 阅读
入门夯实语法算法

Lua真因子和数:真因子和的数体判定

【语法】 一、抛坑提问:一个数等于它全部真因子之和就叫真因子和数,6 等于 1 加 2 加 3——判定只需枚举到平方根配对求…

2026-09-26 22:53 996 技术组 · 0 阅读
入门夯实游戏功能

批量合成:低级材料的批量转换

【游戏】 一、一行代码拆解:n = math.floor(have / 5) —— 批量合成的全部骨架:5 个碎片合成 1 …

2026-09-26 22:53 996 技术组 · 0 阅读
策划架构游戏功能

装备保险:死亡掉落的保险赔付

【游戏】 一、一行代码拆解:if INSURED[actor] then 赔付 end —— 装备保险的全部骨架:死亡掉落判…

2026-09-26 22:53 996 技术组 · 0 阅读
进阶实战语法算法

Lua快速选择:第K小元素的分区求解

【语法】 一、隐蔽陷阱:找第 K 小元素先全量排序再取下标,n log n 浪费在无关排序上;快速选择借用快排分区——每轮只…

2026-09-26 22:53 996 技术组 · 0 阅读