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"
    
    字符串中使用转义序列字符来改变字符的正常解释。例如,要打印双引号(""),我们在上面的例子中使用了\"。转义序列及其用法在下表中列出。
    转义序列
    \a
    \b 退格
    \F 换页
    \n 新队
    \r 回车
    \t 制表符
    \v 垂直制表符
    \\ 反斜杠
    \" 双引号
    \' 单引号
    \[ 左方括号
    \] 右方括号
  • 字符串操作

    Lua 支持字符串操作字符串 -
    序号 方法和目的
    1
    string.upper(argument)
    返回参数的大写表示。
    2
    string.lower(argument)
    返回参数的小写表示。
    3
    string.gsub(mainString,findString,replaceString)
    通过用 replaceString 替换 findString 的出现来返回一个字符串。
    4
    string.find(mainString,findString,
    optionalStartIndex,optionalEndIndex)
    返回主字符串中 findString 的开始索引和结束索引,如果未找到则返回 nil。
    5
    string.reverse(arg)
    通过反转传递的字符串的字符来返回字符串。
    6
    string.format(...)
    返回一个格式化的字符串。
    7
    string.char(arg) and string.byte(arg)
    返回输入参数的内部数字和字符表示。
    8
    string.len(arg)
    返回传递的字符串的长度。
    9
    string.rep(string, n))
    通过重复相同的字符串 n 次来返回一个字符串。
    10
    ..
    因此运算符连接两个字符串。
    现在,让我们深入研究几个示例,以准确了解这些字符串操作函数的行为方式。
  • 案例操作

    下面给出了将字符串处理为大写和小写的示例代码。
    
    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
    
  • 格式化字符串

    在我们的编程中很多时候,我们可能需要以格式化的方式打印字符串。您可以使用 string.format 函数来格式化输出,如下所示。
    
    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
    
  • 字符和字节表示

    字符和字节表示的示例代码,用于将字符串从字符串转换为内部表示,反之亦然。
    
    -- 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