Lua中操作字符串的基本方法整理

字符串是一个字符序列,以及控制字符。字符串可以用三种形式被初始化,其中包括:

  • 单引号之间的字符
  • 双引号之间的字符
  • [] 之间的字符[[和]]

对于上述三种形式的一个例子如下所示。

代码如下:

string1 = "Lua"
print("\"String 1 is\"",string1)
string2 = 'Tutorial'
print("String 2 is",string2)

string3 = [["Lua Tutorial"]]
print("String 3 is",string3)

当我们运行上面的程序,会得到下面的输出。

代码如下:

"String 1" is Lua
String 2 is Tutorial
String 3 is "Lua Tutorial"

转义字符序列中使用字符串来改变字符的正常解释。例如打印双引号(“”)在上面的例子中,我们已经使用\“转义序列,并且其使用列于下表中。

 字符串操作

Lua支持字符串操作字符串:

现在,让我们深入到几个例子,看这些字符串操作函数的行为。
案例操作

用于操纵字符串转换大写和和小写的样品代码如下。

代码如下:

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

当我们运行上面的程序,会得到下面的输出。

代码如下:

LUA
lua

替换子字符串

与另一个替换一个字符串的出现次数示例代码如下。

代码如下:

string = "Lua Tutorial"
-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is",newstring)

当我们运行上面的程序,会得到下面的输出。

代码如下:

The new string is Lua Language

查找和反转

查找字符串的索引和扭转字符串中的示例代码如下。

代码如下:

string = "Lua Tutorial"
-- replacing strings
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)

当我们运行上面的程序,会得到下面的输出。

代码如下:

5 12
The new string is lairotuT auL

格式化字符串

在我们的编程很多时候,我们可能需要在一个格式化的方式进行打印的字符串。可以使用字符串。格式化函数格式化输出,如下图所示。

代码如下:

string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- Basic string formatting
print(string.format("Basic formatting %s %s",string1,string2))
-- Date formatting
date = 2; month = 1; year = 2014
print(string.format("Date formatting %02d/%02d/%03d", date, month, year))
-- Decimal formatting
print(string.format("%.4f",1/3))

当我们运行上面的程序,会得到下面的输出。

代码如下:

Basic formatting Lua Tutorial
Date formatting 02/01/2014
0.3333[code]

字符和字节表示

字符和字节表示一个示例代码,用于从字符串转换字符串内部表示,反之亦然。

[code]-- Byte conversion
-- First character
print(string.byte("Lua"))
-- Third character
print(string.byte("Lua",3))
-- first character from last
print(string.byte("Lua",-1))
-- Second character
print(string.byte("Lua",2))
-- Second character from last
print(string.byte("Lua",-2))

-- Internal Numeric ASCII Conversion
print(string.char(97))

当我们运行上面的程序,会得到下面的输出。

代码如下:

76
97
97
117
117
a

其它常用函数

常见的字符串操作,包括字符串连接,找到字符串,并在次重复相同的字符串多次长度。这些操作在下面例子中给出。

代码如下:

string1 = "Lua"
string2 = "Tutorial"
-- String Concatenations using ..
print("Concatenated string",string1..string2)

-- Length of string
print("Length of string1 is ",string.len(string1))

-- Repeating strings
repeatedString = string.rep(string1,3)
print(repeatedString)

当我们运行上面的程序,会得到下面的输出。

代码如下:

Concatenated string LuaTutorial
Length of string1 is  3
LuaLuaLua

(0)

相关推荐

  • 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)浅析

    Lua中字符串可以使用""或''声明,类似Javascript中的用法. 复制代码 代码如下: > ="sdfdsf" sdfdsf > ='sfdd' sfdd > ='abc"' abc" > ="abc'" abc' 同Java.Python一样,Lua的字符串是不可修改的值,可以通过string.gsub函数来替换字符串中的子串: 复制代码 代码如下: > s = string.gsub(

  • Lua字符串库中的几个重点函数介绍

    在<Lua中的一些库>中也说到了,要对string库的模式匹配进行单独的讲解.对于字符串的处理,对于任何语言的学习来说,都是一个难点,而且也是一个必会的知识点.给你一个字符串,让你按照某种需求进行处理,你不会,那是多么尴尬的一件事情.所以,看完<Lua中的一些库>和这篇文章之后,我争取做到让你在处理字符串时,不再感到捉襟见肘,不再尴尬. 说到Lua中的模式匹配,基本上就是围绕着以下几个函数展开的: 1.find: 2.match: 3.gsub: 4.gmatch. 我的总结也就是

  • Lua中操作字符串的基本方法整理

    字符串是一个字符序列,以及控制字符.字符串可以用三种形式被初始化,其中包括: 单引号之间的字符 双引号之间的字符 [] 之间的字符[[和]] 对于上述三种形式的一个例子如下所示. 复制代码 代码如下: string1 = "Lua" print("\"String 1 is\"",string1) string2 = 'Tutorial' print("String 2 is",string2) string3 = [[&qu

  • 在Python中操作字符串之rstrip()方法的使用

    rstrip()方法返回所有字符都被去除的字符串(缺省为空格字符)结束字符串的副本. 语法 以下是rstrip()方法的语法: str.rstrip([chars]) 参数 chars -- 可以提供要去除的字符. 返回值 此方法返回的所有字符都被去除的字符串(缺省为空格字符)结束字符串的副本. 例子 下面的例子显示了rstrip()方法的使用. #!/usr/bin/python str = " this is string example....wow!!! "; print st

  • 在Python中操作字符串之startswith()方法的使用

    startswith()方法检查字符串是否以str开始,任选限制匹配与给定索引的开始和结束. 语法 以下是startswith()方法的语法: str.startswith(str, beg=0,end=len(string)); 参数 str -- 这是要检查的字符串. beg -- 这是可选的参数设置匹配边界的初始索引. end -- 这是可选的参数设置匹配边界的结束索引. 返回值 如果找到匹配的字符串此方法返回true,否则为false. 例子 下面的例子显示了startswith()方法

  • 在Python中操作字符串之replace()方法的使用

    replace()方法返回当前old换成new,可选择的替代限制到最大数量的字符串的副本. 语法 以下是replace()方法的语法: str.replace(old, new[, max]) 参数 old -- 这是要进行更换的旧子串. new -- 这是新的子串,将取代旧的子字符串. max -- 如果这个可选参数max值给出,仅第一计数出现被替换. 返回值 此方法返回字符串的拷贝与旧子串出现的所有被新的所取代.如果可选参数最大值给定,只有第一个计数发生替换. 例子 下面的示例演示了repl

  • JavaScript中操作字符串之localeCompare()方法的使用

    这个方法返回一个数字表示参考字符串是否到来之前或之后或相同的排序顺序给定的字符串. 语法 string.localeCompare( param ) 下面是参数的详细信息: param : 字符串对象进行比较的字符串 返回值: 0 : 字符串匹配100% 1 : 不匹配,参数值来自于语言环境的排序顺序字符串对象的值之前 -1 : 不匹配,参数值来自于语言环境的排序顺序字符串对象的值之后 例子: <html> <head> <title>JavaScript String

  • lua中操作json数据的方法

    用lua的cjson包就行了. 下载地址在这里 http://www.kyne.com.au/~mark/software/lua-cjson.php 安装的话,make&make install就行了. 复制代码 代码如下: local cjson = require("cjson") local str = '["a", "b", "c"]' local j = cjson.decode(str) for i,v

  • javascript操作字符串的原生方法

    join([分隔符])数组元素组合为字符串 toString()以字符串表示数组 reverse()数组反转--改变原数组本身 valueOf()返回数组值 复制代码 代码如下: <html> <head> <script type="text/javascript"> var fruits= ["苹果","鸭梨","橙子"];//建议这样定义.初始化数组 with(document){  

  • Lua中的元表与元方法学习总结

    前言 元表对应的英文是metatable,元方法是metamethod.我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了"+"符号,就可以进行类的加法运算.在Lua中也有这个道理,两个table类型的变量,你是无法直接进行"+"操作的,如果你定义了一个指定的函数,就可以进行了.那这篇博文就是主要讲的如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助. Lua是怎么做的? 通常,Lua中的每个值都有一套预定义的操作集合,比如数

  • Yii控制器中操作视图js的方法

    本文实例讲述了Yii控制器中操作视图js的方法.分享给大家供大家参考,具体如下: //YII framework路径 Yii::getFrameworkPath(); //protected/runtime Yii::app()->getRuntimePath(); //protected/venders目录 Yii::import('application.venders.*'); //或在protected/config/main.php说明 'import'=>array( //....

  • Java 中运行字符串表达式的方法

    在日常的开发中,偶尔会遇到运行字符串表达式的情况,通常这样的需求会对需求进行进一步分析,然后进行进一步 "特殊化",最后直接写到硬代码中,这样做的话,就不太好扩展了:也有另外的处理方式是采用 Java 内置的 JavaScript 引擎等运行字符串表达式,但是内置引擎也有弊端,比如频繁运行片段式的字符串的效率非常低,并且与 Java 之间的数据交互比较麻烦,于是,便产生了写一个"字符串表达式计算引擎"的想法... 写的过程其实没想象中那么麻烦,最初版大概在今年 5

随机推荐