Percorrer uma String

172 views
Skip to first unread message

Alen Vieira

unread,
Feb 17, 2011, 3:02:57 PM2/17/11
to lua...@googlegroups.com
Sou iniciante em lua, gostaria de saber uma maneira simples de percorrer caractere por caractere de uma string. Tipo já pensei em fazer um laço e usar a função string.sub mas ficou meio "feio" o codigo.

Alguém tem alguma sugestão?

Gabriel Duarte

unread,
Feb 17, 2011, 4:19:42 PM2/17/11
to lua...@googlegroups.com
Posta o código e vemos como fazer :D

2011/2/17 Alen Vieira <ale...@gmail.com>
Sou iniciante em lua, gostaria de saber uma maneira simples de percorrer caractere por caractere de uma string. Tipo já pensei em fazer um laço e usar a função string.sub mas ficou meio "feio" o codigo.

Alguém tem alguma sugestão?



--
Gabriel Duarte
Linux User #471185
Rio de Janeiro - RJ
http://w3.impa.br/~gabrield

Phones:
(55) (21) 9463-7760  -> Mobile
(55) (21) 2464-9302  -> Home
(55) (21) 2529-5080  -> Work

Alexsander Petry

unread,
Feb 17, 2011, 4:35:49 PM2/17/11
to lua...@googlegroups.com
Veja isto:

str="123456789"
out=""
for s in string.gmatch(str, "(.)") do
 out=out..s..", "
end
print(">>>>>>>>>>>>>>>" .. out)
Alexsander Petry

Alen Vieira

unread,
Feb 17, 2011, 4:55:52 PM2/17/11
to lua...@googlegroups.com
Gabriel o codigo que pensei é:

linha = "qualquer coisa"
for i=1, #linha do
  letra = linha:sub(i,i)
  print(letra)
end


Alexsander, valeu pelo exemplo mas bora deixar o codigo mais "limpo".

Alen Vieira

unread,
Feb 17, 2011, 5:19:32 PM2/17/11
to lua...@googlegroups.com
Alguém tem uma sugestão melhor?

Lucas

unread,
Feb 17, 2011, 6:14:50 PM2/17/11
to lua...@googlegroups.com
2011/2/17 Alen Vieira <ale...@gmail.com>:

> Alguém tem uma sugestão melhor?
>

Se você vai trabalhar repetidamente com a mesma string talvez seja
melhor você inicialmente colocar os caracteres da string em uma tabela
para então poder trabalhar diretamente com os índices ( ex.:
{'t','e','s','t','e'} ).

--
http://oproj.tuxfamily.org

Luiz Henrique de Figueiredo

unread,
Feb 18, 2011, 6:20:31 AM2/18/11
to lua...@googlegroups.com
> Sou iniciante em lua, gostaria de saber uma maneira simples de percorrer
> caractere por caractere de uma string. Tipo j� pensei em fazer um la�o e
> usar a fun��o string.sub mas ficou meio "feio" o codigo.

Explique *por que* voce quer percorrer uma string char por char e poderemos
sugerir algo mais adequado.

Alen Vieira

unread,
Feb 18, 2011, 10:42:44 AM2/18/11
to lua...@googlegroups.com
Luiz: estou na tentativa de fazer um Analisador Léxico

Em 18 de fevereiro de 2011 08:20, Luiz Henrique de Figueiredo <l...@tecgraf.puc-rio.br> escreveu:
> Sou iniciante em lua, gostaria de saber uma maneira simples de percorrer
> caractere por caractere de uma string. Tipo já pensei em fazer um laço e
> usar a função string.sub mas ficou meio "feio" o codigo.

Explique *por que* voce quer percorrer uma string char por char e poderemos
sugerir algo mais adequado.

--

Gabriel Duarte

unread,
Feb 18, 2011, 10:46:05 AM2/18/11
to lua...@googlegroups.com
Pode olhar isso:

Roberto Ierusalimschy

unread,
Feb 18, 2011, 10:55:24 AM2/18/11
to lua...@googlegroups.com
> Pode olhar isso:
> http://lua-users.org/wiki/LexicalAnalysis
>
> 2011/2/18 Alen Vieira <ale...@gmail.com>
>
> > Luiz: estou na tentativa de fazer um Analisador L�xico

D� uma olhada tamb�m em LPeg:

http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html

Se o analisador l�xico que voc� quer � para fazer um parser, com LPeg
voc� faz os dois juntos.

-- Roberto

Luiz Henrique de Figueiredo

unread,
Feb 18, 2011, 11:01:27 AM2/18/11
to lua...@googlegroups.com
> Luiz: estou na tentativa de fazer um Analisador L�xico

Olhe pattern matching e LPEG.

Reply all
Reply to author
Forward
0 new messages