string.find()
Parte da seção Fundamentals do Journey de Lua da Coddy — lição 48 de 90.
A função string.find() é uma ferramenta poderosa para pesquisar dentro de strings. Ela permite que você procure por uma string menor (chamada de padrão) dentro de uma string maior e informa exatamente onde ela foi encontrada.
Aqui está a sintaxe básica:
string.find(text, pattern)Quando string.find() localiza o padrão com sucesso, ele retorna dois números: a posição inicial e a posição final da correspondência. Se o padrão não for encontrado, ele retorna nil.
Aqui está um exemplo simples:
local sentence = "The treasure is hidden here"
local start_pos, end_pos = string.find(sentence, "treasure")
print(start_pos, end_pos) -- saída: 5 12Neste exemplo, a palavra "treasure" começa na posição 5 e termina na posição 12 na frase.
Desafio
FácilCrie um detector de mensagens secretas que procure por uma palavra de código oculta dentro de uma mensagem de texto maior. Declare uma variável chamada message e atribua a ela o valor "The ancient treasure lies beneath the old oak tree". Use a função string.find() para procurar pela palavra "treasure" dentro da mensagem e armazene as posições inicial e final em variáveis chamadas startPos e endPos. Imprima ambos os valores de posição em linhas separadas.
Folha de consulta
A função string.find() procura por um padrão dentro de uma string e retorna as posições inicial e final da correspondência, ou nil se não for encontrado.
Sintaxe básica:
string.find(text, pattern)Exemplo:
local sentence = "The treasure is hidden here"
local start_pos, end_pos = string.find(sentence, "treasure")
print(start_pos, end_pos) -- saída: 5 12Experimente você mesmo
-- Declara a variável message
local message = "The ancient treasure lies beneath the old oak tree"
-- TODO: Escreva seu código aqui para encontrar a palavra "treasure" e armazenar as posições
-- Imprime as posições
print(startPos)
print(endPos)Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores 2 Relacionais e Lógicos
Operadores de IgualdadeOperadores RelacionaisO Operador 'and'O Operador 'or'O Operador 'not'Avaliação de Curto-CircuitoValores Truthy e FalsyRecapitulação - Lógica Simples7Lógica Condicional Básica
A instrução if-thenA instrução if-then-elseA instrução elseifRecapitulação - Baú do Tesouro2Variáveis e Tipos de Dados
O que é uma Variável?NúmerosStringsBooleanosO Valor 'nil'A Função type()Convenções de NomenclaturaRecapitulação - Perfil de Personagem5Saída Básica
Imprimindo LiteraisImprimindo VariáveisImprimindo Múltiplos ValoresCombinando Strings e VariáveisA Função tostring()EntradaCastRecapitulação - Relatório de StatusRecapitulação - Até 1208Fundamentos de Manipulação de Strings
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Revisão - Formatar Nome de Usuário3Operadores 1: Aritmética e Concatenação
Operadores AritméticosOperador de MóduloOperador de ExponenciaçãoConcatenação de StringsPrecedência de OperadoresRecapitulação - Cálculos Simples6Projeto: Exibição de Atributos do Personagem
Mensagem de Boas-vindasDeclarar Atributos do Personagem9Fundamentos de Funções
Declarando uma FunçãoChamando uma FunçãoFunções com ParâmetrosFunções com Múltiplos ParâmetrosA Instrução 'return'Recapitulação - Calculadora de Área