📝 Texto
Trabalhe com palavras, frases e caracteres - incluindo suporte completo a UTF-8!
💬O que é texto?
Texto (ou string) é qualquer sequência de caracteres entre aspas. Use para nomes, mensagens, e qualquer informação textual.
local nome = "Maria" local frase = "Olá, mundo!" local emoji = "🎉" -- UTF-8 funciona!
Aspas simples ou duplas
local texto1 = "Isso é texto" local texto2 = 'Isso também' local com_aspas = "Ele disse: 'Olá!'"
Concatenação (juntar textos)
local primeiro = "João" local sobrenome = "Silva" local completo = primeiro .. " " .. sobrenome exiba(completo) -- "João Silva"
Biblioteca Texto
Comprimento do texto
local mensagem = "Olá!" exiba(texto.obtenha_comprimento(mensagem)) -- 4 exiba(#mensagem) -- Atalho: também retorna 4
Maiúsculas e minúsculas
local texto = "Olá Mundo" exiba(texto.converta_para_maiúscula(texto)) -- "OLÁ MUNDO" exiba(texto.converta_para_minúscula(texto)) -- "olá mundo"
Extrair parte do texto
local frase = "Programar é legal" exiba(texto.obtenha_subtexto(frase, 1, 9)) -- "Programar" exiba(texto.obtenha_subtexto(frase, 14)) -- "legal" (até o fim) exiba(texto.obtenha_subtexto(frase, -5)) -- "legal" (últimos 5)
Repetir texto
exiba(texto.repita("Ha", 3)) -- "HaHaHa" exiba(texto.repita("=", 20)) -- "===================="
Inverter texto
exiba(texto.inverta("Sol")) -- "loS"
Buscar e substituir
-- Encontrar texto local frase = "Eu amo programar" local inicio, fim = texto.encontre(frase, "amo") exiba(inicio, fim) -- 4, 6 -- Substituir texto local novo = texto.substitua_globalmente(frase, "amo", "adoro") exiba(novo) -- "Eu adoro programar"
Formatação de texto
-- Formatar como printf em C local nome = "Ana" local idade = 15 local mensagem = texto.formate("%s tem %d anos", nome, idade) exiba(mensagem) -- "Ana tem 15 anos" -- Formatação de números exiba(texto.formate("%.2f", 3.14159)) -- "3.14" exiba(texto.formate("%05d", 42)) -- "00042"
Trabalhar com bytes
-- Obter código ASCII/UTF-8 de caracteres exiba(texto.obtenha_byte("A")) -- 65 exiba(texto.obtenha_byte("ABC", 2)) -- 66 (segundo caractere) -- Criar texto a partir de códigos exiba(texto.crie_caractere(65, 66, 67)) -- "ABC"
Padrões (busca avançada)
-- Combinar padrão local email = "contato@exemplo.com" local usuario = texto.combine(email, "(.+)@") exiba(usuario) -- "contato" -- Iterar sobre combinações para palavra em texto.combine_globalmente("um dois três", "%w+") faça exiba(palavra) fim -- Exibe: "um", "dois", "três"
Biblioteca UTF-8
Comprimento em caracteres UTF-8
local texto = "Olá 👋" exiba(#texto) -- 8 (bytes) exiba(utf8.obtenha_comprimento(texto)) -- 5 (caracteres)
Iterar sobre caracteres UTF-8
local texto = "Sol 🌞" para posicao, codigo em utf8.itere_códigos(texto) faça local caractere = utf8.crie_caractere(codigo) exiba(posicao, codigo, caractere) fim
Obter ponto de código
local emoji = "😀" local codigo = utf8.obtenha_ponto_código(emoji, 1) exiba(codigo) -- 128512
Criar caractere UTF-8
-- Criar emoji a partir do código local emoji = utf8.crie_caractere(128512) exiba(emoji) -- "😀"
Padrão de caractere UTF-8
-- Padrão para combinar um caractere UTF-8 exiba(utf8.padrão_caractere) -- "[\0-\x7F\xC2-\xFD][\x80-\xBF]*"
Exemplo: Validador de email
função valida_email(email) -- Verifica se tem @ e ponto local tem_arroba = texto.encontre(email, "@") local tem_ponto = texto.encontre(email, "%.") se tem_arroba então se tem_ponto então retorne verdadeiro fim fim retorne falso fim exiba(valida_email("teste@exemplo.com")) -- verdadeiro exiba(valida_email("invalido")) -- falso
Exemplo: Contador de palavras
função conta_palavras(texto) local contador = 0 para palavra em texto.combine_globalmente(texto, "%w+") faça contador = contador + 1 fim retorne contador fim local frase = "Programar em Sol é divertido!" exiba("Palavras: " .. conta_palavras(frase)) -- 5
Exemplo: Formatador de nome
função formata_nome(nome_completo) -- Converte para minúsculas local minusculo = texto.converta_para_minúscula(nome_completo) -- Capitaliza primeira letra de cada palavra local formatado = texto.substitua_globalmente(minusculo, "(%a)([%w]*)", função(primeira, resto) retorne texto.converta_para_maiúscula(primeira) .. resto fim) retorne formatado fim exiba(formata_nome("JOÃO DA SILVA")) -- "João Da Silva"
Agora você domina texto em Sol! Use UTF-8 para trabalhar com emojis e caracteres internacionais.