Lua中string.len()使用指南
前言
今天是星期天,我还是不浪费大家的脑细胞了,直接来列举一个string家族中比较简单的函数,函数虽然简单,但是用处却很大,使用频率也很高,废话不多说,我们直接来看函数用法。
内容
string.len()
原型:string.len(s)
解释:返回所给字符串的长度,如果字符串中包含'\0',也会被统计为一个字符。
Usage
首先新建一个文件将文件命名为lentest.lua然后编写如下代码:
-- 一个常规字符串
local sourcestr = "This is a rainy day!" local sourcelen = string.len(sourcestr) print("\nthe len of sourcestr is "..sourcelen)
-- 包含'\0'的字符串
local str = "Hello Lua \000 What?" local strlen = string.len(str) print("\nthe len of str is "..strlen)
-- 换一种写法
local strlen_new = str:len() print("\nthe len of str is "..strlen_new)
运行结果
总结
这个函数也会统计字符串中'\0'的个数,这和c语言是不一样的,这一点需要注意
第三组测试我是为了复习一下string家族中所有函数的另一种写法,其实以前也总结过,只不过今天在这里再次巩固一下
相关推荐
-
Lua中string.lower()使用指南
前言 今天我们总结的函数也比较简单,函数的作用的将所给字符串的中的大写字母转换成小写字母,这种操作往往出现在比较操作之前,比如验证码通常都是不区分大小写的,接下来我们一起看一下函数的用法. 内容 string.lower() 原型:string.lower(s) 解释:接收一个字符串,然后返回一个将字符串中大写字母转化为小写字母的字符串副本,除此之外其他字符都不会被改变,大写字母的定义依赖于当前的本地设置. Usage 首先我们新建一个文件将文件命名为lowertest.lua然后编写代码如下:
-
Lua字符串库(string库)学习笔记
Lua 最强大的特性之一就是它的字符串处理能力,它支持字符格式化输出,具有可扩展的模式匹配查找功能,以及一些实用的字符操作,例如查询.截取.替换和删除等字符串操作,这些字符串操作函数都封装在一个名为 string 的模块里. Lua 里的字符索引是从 1 开始,索引值也可以是负数,这种情况将被解释成向后索引,从字符串末尾开始算起. 下面是 Lua 5.2 提供的字符串操作函数: byte 函数 string.byte 把字符串里的第 i 个字符转为 ASCII编码,默认是输出第一个字符的编码(只
-
Lua loadstring函数用法实例
该函数的返回值是返回一个function,如果load失败,则返回nil 例子代码: 复制代码 代码如下: --i = 32 local i = 0 f = loadstring("i = 1 + i; print(i)"); g = function () i = 1 + i; print(i) end f() g() f操作的全局i,g操作的是局部i,因为,loadstring总是在全局环境中去编译它的字符串 loadstri
-
Lua中的string库和强大的模式匹配学习笔记
lua原生解释器对字符串的处理能力是十分有限的,强大的字符串操作能力来自于string库.lua的string函数导出在string module中.在lua5.1,同时也作为string类型的成员方法,因此,我们既可以写成string.upper(s), 也可以s:upper(),选择你喜欢的写法. string.len(s)返回s的长度. string.rep(s, n)返回重复s字符串n次的字符串. string.lower(s)返回一份已将大写转成小写的字符串s的拷贝 lower,upp
-
LUA string库使用小结
1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作字符串,而是返回一个结果 复制代码 代码如下: s = "[abc]" string.len(s) <==返回5 string.rep("abc", 2) <==返回"abcabc" string.lower("ABC") <==返回"a
-
Lua中字符串(string)浅析
Lua中字符串可以使用""或''声明,类似Javascript中的用法. 复制代码 代码如下: > ="sdfdsf" sdfdsf > ='sfdd' sfdd > ='abc"' abc" > ="abc'" abc' 同Java.Python一样,Lua的字符串是不可修改的值,可以通过string.gsub函数来替换字符串中的子串: 复制代码 代码如下: > s = string.gsub(
-
Lua中的loadfile、dofile、loadstring、require用法实例
复制代码 代码如下: do local errorInfo = loadfile("test.lua"); --load code file if(errorInfo == nil) then print("load file failed"); else print("load file success"); local doInfo = dofile("test.lua") --complie the f
-
Lua中实现StringBuffer功能
在Lua中,字符串是一个常量,如果用字符串连接符".."把2个字符串连接起来,例如first_str = first_str .. second_str,那么原来的first_str和second_str就会作为垃圾等待回收,first_str引用的是一个新的字符串,如果在程序里面有大量的字符串连接操作的话,性能会十分低下.Lua是一个很简洁的语言,他没有StringBuffer的实现,但是其实我们可以动手写一个简单的StringBuffer实现,来避免性能的问题. 首先定义一个叫St
-
Lua中的string库(字符串函数库)总结
Lua解释器对字符串的支持很有限.一个程序可以创建字符串并连接字符串,但不能截取子串,检查字符串的大小,检测字符串的内容.在Lua中操纵字符串的功能基本来自于string库. 字符串库中的一些函数是非常简单的: string.len(s) 返回字符串s的长度: string.rep(s, n) 返回重复n次字符串s的串:你使用string.rep("a", 2^20)可以创建一个1M bytes的字符串(比如,为了测试需要): string.lower(s)
-
Lua中string.len()使用指南
前言 今天是星期天,我还是不浪费大家的脑细胞了,直接来列举一个string家族中比较简单的函数,函数虽然简单,但是用处却很大,使用频率也很高,废话不多说,我们直接来看函数用法. 内容 string.len() 原型:string.len(s) 解释:返回所给字符串的长度,如果字符串中包含'\0',也会被统计为一个字符. Usage 首先新建一个文件将文件命名为lentest.lua然后编写如下代码: -- 一个常规字符串 local sourcestr = "This is a rainy da
-
Lua中模块以及实现方法指南
从使用的角度来看,一个模块就是一个程序库,可以通过Lua自身提供的require来加载.然后便得到一个全局变量,表示一个table.这个table就是像一个名字空间,其内容就是模块导出的所有东西,例如函数和常量.简单的说,Lua中的模块就是一个table,table中可以包括任何东西.本文首先详细介绍模块相关的require函数,包括该函数的执行流程以及查找模块的路径,然后介绍了实现模块的三种方法,并给出相应的优缺点. require函数 该函数用来加载一个模块,即按指定的路径和传入的参数,查
-
Lua中的捕获机制和转换技巧介绍
捕获 捕获是这样一种机制:可以使用模式串的一部分匹配目标串的一部分.将你想捕获的模式用圆括号括起来,就指定了一个捕获. 在string.find使用捕获的时候,函数会返回捕获的值作为额外的结果.这常被用来将一个目标串拆分成多个: 复制代码 代码如下: pair = "name = Anna" _, _, key, value = string.find(pair, "(%a+)%s*=%s*(%a+)") print(key, value) --> na
-
Lua中操作字符串的基本方法整理
字符串是一个字符序列,以及控制字符.字符串可以用三种形式被初始化,其中包括: 单引号之间的字符 双引号之间的字符 [] 之间的字符[[和]] 对于上述三种形式的一个例子如下所示. 复制代码 代码如下: string1 = "Lua" print("\"String 1 is\"",string1) string2 = 'Tutorial' print("String 2 is",string2) string3 = [[&qu
-
Lua中的一些常用函数库实例讲解
前言 这篇文章将会来一些比较轻松的内容,就是简单的介绍一下Lua中几个常用的库.简单的说就是几个API的介绍.所以说,看起来比较容易,也没有多大的分量.就是纯粹的总结.使用库就是为了方便我们的开发,提高开发效率,同时也能保证代码的质量.希望大家以后也不要重复造轮子了. 数学库 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan--) 所有的三角函数都使用弧度单位,可以用函数deg(角度)和rad(弧度)来转换角度
-
Lua中获取utf8字符串长度的方法和自定义函数
复制代码 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; while left ~= 0 do local tmp=string.byte(str,-left); local i=#arr; wh
随机推荐
- 揭秘PowerShell 5.0新特性和新功能
- 深入理解golang的异常处理机制
- Underscore之Array_动力节点Java学院整理
- php 函数中使用static的说明
- PHP面向接口编程 耦合设计模式 简单范例
- Javascript基于jQuery UI实现选中区域拖拽效果
- 三种Node.js写文件的方式
- php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
- 深入理解:Java是类型安全的语言,而C++是非类型安全的语言
- 基于JavaScript Array数组方法(新手必看篇)
- e是自然对数的底 e.vbs
- C++ explicit构造函数实例解析
- MySQL数据库转移,access,sql server 转 MySQL 的图文教程
- jquery中:input和input的区别分析
- 微信小程序开发之圆形菜单 仿建行圆形菜单实例
- 用 Javascript 验证表单(form)中的单选(radio)值
- 用贪心法求解背包问题的解决方法
- 两个php日期控制类实例
- Java编程枚举类实战代码分享
- Java实现Floyd算法求最短路径