Entendendo as Strings Lua

Neste artigo, exploraremos strings Lua , suas propriedades, operações e uso com exemplos.

Strings são um tipo de dados importante na programação que representam uma sequência de caracteres. Eles são amplamente utilizados para armazenar e manipular dados textuais.

Em Lua, as strings podem ser criadas usando aspas simples ( ' ), aspas duplas ( ) ou colchetes (a string é colocada entre [[ e ]]).



Propriedades das Strings Lua

As strings Lua são imutáveis, o que significa que não podem ser alteradas após a criação.

Eles podem ser concatenados, fatiados e comparados, mas qualquer modificação criará um novo objeto string.

As strings em Lua têm um comprimento máximo de 2^31 – 1 bytes e são codificadas em UTF-8 por padrão. No entanto, é possível usar outras codificações manipulando manualmente os bytes da string.

O exemplo abaixo demonstra a inicialização de strings em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
local first_string = 'Single quotes';
local second_string = "double quotes";
local bracket_string = [[
This is a square bracket string.
It is mostly used for multi-line strings.
]]
print(first_string)
print(second_string)
print(bracket_string)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Caracteres de escape

Os caracteres de escape são caracteres especiais que nos permitem incluir caracteres em uma string que, de outra forma, seriam difíceis ou impossíveis de digitar diretamente.

Esses caracteres são representados por uma barra invertida (\) seguida por um código especial.

A tabela a seguir exibe os caracteres de escape disponíveis em Lua:

Símbolos Uso
\a Sino
\b Backspace
\f Formfeed
\n Nova linha
\r Retorno de carro
\t Aba
\v Aba vertical
\\ Barra invertida
\” Aspas duplas
\' Aspas simples
\[ Colchete esquerdo
\] Colchete direito

O exemplo a seguir implementa os caracteres de escape em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
_str1 = "This is a string of _str1.\nAnother string of _str1."
print(_str1)
_str2 = "This is a string of _str2.\tAnother string of _str2."
print(_str2)
_str3 = "The is a string of \"_str3\""
print(_str3)
_str4 = "This is a string of _str4 using a backslash \\"
print(_str4)
_str5 = 'This is a string of \'_str5\"
print(_str5)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Métodos de cadeia de caracteres Lua

Lua suporta os seguintes métodos de string:

String.upper(str)

Retorna o argumento str com todas as suas letras em maiúsculas.

Aqui está um breve exemplo que usa string.upper em Lua:

Example: 

1
2
3
4
5
6
local str = "MrExamples"
local newStr = string.upper(str)
print(newStr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

string.lower(str)

Retorna a string passada como argumento com todos os caracteres alfabéticos em minúsculo.

O exemplo abaixo faz uso da função string.lower em Lua:

Example: 

1
2
3
4
5
6
local str = "MrExamples"
local newStr = string.lower(str)
print(newStr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

string.sub(str, i, j)

Este método é usado para extrair uma substring de uma string. São necessários dois ou três argumentos: a string(str) da qual extrair a substring, o índice inicial i (inclusive) da substring e o índice final opcional j (inclusive) da substring.

O exemplo a seguir demonstra o método string.sub em Lua:

Example: 

1
2
3
4
5
6
local str = "MrExamples"
local newStr = string.sub(str, 3)
print(newStr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

string.gsub(var,localizar,substituir,[n])

Substitui as ocorrências de um padrão em uma string por uma nova string ou valor.

Aqui, var é a variável de string na qual a operação é executada, find é a string a ser substituída, replace é a string a ser adicionada no lugar de find enquanto [n] é opcional onde o número máximo de substituições deve ser especificado.

Se não for especificado, todas as ocorrências serão substituídas.

Vamos explorar o método string.gsub() usando um exemplo:

Example: 

1
2
3
4
5
6
local str = "MrExamples: Learning through examples"
local newStr = string.gsub(str, "through", "via")
print(newStr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

string.find(var,find,[first,[plain]])

Esta função encontra a primeira ocorrência de um padrão em uma string e retorna seus índices inicial e final.

Aqui, var é a variável de string na qual a operação é executada e find é a string que está sendo pesquisada.

O argumento nomeado como primeiro especifica o índice inicial da pesquisa e é opcional. Além disso, plain é um valor booleano que especifica se o valor encontrado é um padrão ou texto simples. Se esse valor for verdadeiro, o valor de localização será um texto sem formatação. Também é opcional.

Para uma compreensão clara de string.find() , vamos dar uma olhada em um exemplo:

Example: 

1
2
3
4
5
6
7
8
9
10
text = "MrExamples!"
substring = "Examples"
start, finish = string.find(text, substring)
print('start: '..start)
print('finish: '..finish)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.reverse(str)

Usado para inverter a ordem dos caracteres em uma string passada como argumento.

O exemplo a seguir demonstra o método string.reverse() em Lua:

Example: 

1
2
3
4
5
6
7
8
str = "MrExamples"
reversed_str = string.reverse(str)
print(reversed_str)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.format(str,…)

Retorna uma string formatada. Aqui str é a string que tem espaços reservados para valores enquanto … representa valores a serem inseridos nos espaços reservados.

Os espaços reservados são especificados abaixo:

Espaços reservados Visão geral
%d  insere um valor inteiro.
%f insere um valor de ponto flutuante.
%s insere um valor de string.

Para simplificar o conceito, vamos visualizar um exemplo:

Example: 

1
2
3
4
5
6
7
8
9
name = "Lua"
year = 1993
str = string.format("%s is a programming language that was built back in %d.", name, year)
print(str)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.char(str)

Esta é uma função em Lua que recebe qualquer número de argumentos inteiros e retorna uma string que consiste nos caracteres com os valores Unicode correspondentes.

O exemplo a seguir mostra a implementação do método string.char():

Example: 

1
2
3
4
5
6
str = string.char(77, 114, 69, 120, 97, 109, 112, 108, 101, 115)
print(str)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.byte(str)

Ele retorna o (s) valor(es) ASCII do(s) caracter(es) na(s) posição(ões) especificada(s) em uma string, dada uma string e um índice opcional.

Na ausência de um índice, a função retorna os valores ASCII de todos os caracteres.

O exemplo abaixo ilustra o método string.byte() em Lua:

Example: 

1
2
3
4
5
6
7
8
9
str = "MrExamples"
for i = 1, #str do
value = string.byte(str, i)
print(value)
end
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.len(str)

Retorna o comprimento de uma string passada como um argumento.

Este é um breve exemplo que cobre o método string.len() em Lua:

Example: 

1
2
3
4
5
6
7
8
str = "MrExamples"
length_str = string.len(str)
print(length_str)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.rep(str, n))

Uma string(str) e um count(n) são passados ​​como argumentos, e uma nova string é retornada consistindo na string original repetida vezes.

O exemplo a seguir fornece uma visão geral do método string.rep() em Lua:

Example: 

1
2
3
4
5
6
7
str = "MrExamples "
repeated_str = string.rep(str, 4)
print(repeated_str)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lua string.match(str, find)

Usado para pesquisar uma string (str) por um padrão (find) e retorna a substring correspondente.

Requer dois argumentos:

A primeira é a string a ser pesquisada e a segunda é um padrão a ser comparado.

A correspondência de padrões é feita usando uma combinação de caracteres literais e caracteres especiais que possuem um significado específico na sintaxe de correspondência de padrões de Lua .

Este exemplo faz uso do método string.match em Lua:

Example: 

1
2
3
4
5
6
7
str = "MrExamples: :Learning through examples"
match = string.match(str, ":(%s+[^:]+)$")
print(match)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone