Lua - Cuerdas
La cadena es una secuencia de caracteres, así como caracteres de control como el avance de formulario. La cadena se puede inicializar con tres formas que incluyen:
- Caracteres entre comillas simples
- Caracteres entre comillas dobles
- Caracteres entre [[y]]
A continuación se muestra un ejemplo de los tres formularios anteriores.
string1 = "Lua"
print("\"String 1 is\"",string1)
string2 = 'Tutorial'
print("String 2 is",string2)
string3 = [["Lua Tutorial"]]
print("String 3 is",string3)
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
"String 1 is" Lua
String 2 is Tutorial
String 3 is "Lua Tutorial"
Los caracteres de la secuencia de escape se utilizan en una cadena para cambiar la interpretación normal de los caracteres. Por ejemplo, para imprimir comas dobles invertidas (""), hemos usado \ "en el ejemplo anterior. La secuencia de escape y su uso se enumeran a continuación en la tabla.
Secuencia de escape | Utilizar |
---|---|
\un | Campana |
\segundo | Retroceso |
\F | Formfeed |
\norte | Nueva línea |
\ r | Retorno de carro |
\ t | Lengüeta |
\ v | Pestaña vertical |
\\ | Barra invertida |
\ " | Doble comillas |
\ ' | Comillas simples |
\ [ | Corchete izquierdo |
\] | Corchete derecho |
Manipulación de cuerdas
Lua admite cuerdas para manipular cuerdas -
No Señor. | Método y propósito |
---|---|
1 | string.upper(argument) Devuelve una representación del argumento en mayúscula. |
2 | string.lower(argument) Devuelve una representación en minúscula del argumento. |
3 | string.gsub(mainString,findString,replaceString) Devuelve una cadena reemplazando las apariciones de findString con replaceString. |
4 | string.find(mainString,findString, optionalStartIndex,optionalEndIndex) Devuelve el índice inicial y el índice final de findString en la cadena principal y nulo si no se encuentra. |
5 | string.reverse(arg) Devuelve una cadena invirtiendo los caracteres de la cadena pasada. |
6 | string.format(...) Devuelve una cadena formateada. |
7 | string.char(arg) and string.byte(arg) Devuelve representaciones internas numéricas y de caracteres del argumento de entrada. |
8 | string.len(arg) Devuelve una longitud de la cadena pasada. |
9 | string.rep(string, n)) Devuelve una cadena repitiendo la misma cadena n veces. |
10 | .. Por lo tanto, el operador concatena dos cadenas. |
Ahora, profundicemos en algunos ejemplos para ver exactamente cómo se comportan estas funciones de manipulación de cadenas.
Manipulación de casos
A continuación se proporciona un código de muestra para manipular las cadenas en mayúsculas y minúsculas.
string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
LUA
lua
Reemplazo de una subcadena
A continuación, se proporciona un código de muestra para reemplazar las ocurrencias de una cadena por otra.
string = "Lua Tutorial"
-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
The new string is Lua Language
Encontrar y revertir
A continuación se proporciona un código de muestra para encontrar el índice de subcadena y cadena de inversión.
string = "Lua Tutorial"
-- replacing strings
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
5 12
The new string is lairotuT auL
Formateo de cadenas
Muchas veces en nuestra programación, es posible que necesitemos imprimir cadenas de forma formateada. Puede utilizar la función string.format para formatear la salida como se muestra a continuación.
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))
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
Basic formatting Lua Tutorial
Date formatting 02/01/2014
0.3333
Representaciones de caracteres y bytes
Un código de muestra para la representación de caracteres y bytes, que se utiliza para convertir la cadena de cadena en representación interna y viceversa.
-- 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))
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
76
97
97
117
117
a
Otras funciones comunes
Las manipulaciones comunes de cadenas incluyen la concatenación de cadenas, encontrar la longitud de la cadena y, en ocasiones, repetir la misma cadena varias veces. El ejemplo de estas operaciones se da a continuación.
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)
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
Concatenated string LuaTutorial
Length of string1 is 3
LuaLuaLua