caotic 393 Postado Janeiro 15, 2013 Share Postado Janeiro 15, 2013 (editado) Eu estava querendo fazer alguma gambiarra para passar o tempo. E tive a ideia de fazer esta função. Ela retira caracteres de uma string para usa - la basta colocar os caracteres que deseja retirar numa array e chamar a função. local function retirecharacterString(string, value) k = 1 while k < #string do local str = string.sub(stg or string, k, k) if str == tostring(value) then local sub = string.sub(stg or string, 0, k-1) local strsub = string.sub(stg or string, k+1, #string) stg = ""..sub..""..strsub.."" k = k+1 end k = k+1 end return stg end function retireCharactersInArrayString(string, array) for i = 1,#array do x = "" x = x..retirecharacterString(string, array[i]) end return x end Se printar dessa maneira: print(retireCharactersInArrayString("GOD OF WAR", {"G", "O", "D", " "})) Vai aparecer "F WAR" Editado Janeiro 15, 2013 por caotic Link para o comentário Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Janeiro 15, 2013 Share Postado Janeiro 15, 2013 (editado) Legalzinha, mas dá pra fazer tudo isso com um string.gsub, caotic. function removeCharInString(str, pat) pat = table.concat(pat) str = str:gsub("[".. pat .."]", "") return str end Abração. Editado Janeiro 15, 2013 por Oneshot Link para o comentário Compartilhar em outros sites More sharing options...
caotic 393 Postado Janeiro 15, 2013 Autor Share Postado Janeiro 15, 2013 Legalzinha, mas dá pra fazer tudo isso com um string.gsub, caotic. function removeCharInString(str, pat) str = str:gsub("[".. pat .."]", "") return str end Abração. Ja sabia... Eu fiz ela so para desafiar o sub. Ate mais. Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Janeiro 15, 2013 Share Postado Janeiro 15, 2013 ta virando o mestre na arte dos POGs heim caotic kkk Link para o comentário Compartilhar em outros sites More sharing options...
20cm 70 Postado Janeiro 16, 2013 Share Postado Janeiro 16, 2013 (editado) Se você quer tirar só {"G","O","D"," "} o certo não retornar OF WAR? (sem retirar o O) Editado Janeiro 16, 2013 por 20cm Link para o comentário Compartilhar em outros sites More sharing options...
caotic 393 Postado Janeiro 16, 2013 Autor Share Postado Janeiro 16, 2013 Se você quer tirar só {"G","O","D"," "} o certo não retornar OF WAR? (sem retirar o O) Ja que ele repete todas as caracteres da string ele acaba retirando o "O". Link para o comentário Compartilhar em outros sites More sharing options...
20cm 70 Postado Janeiro 16, 2013 Share Postado Janeiro 16, 2013 HMMMMMMMMMMMMMMMMM verdade HASUAHUS Vou tentar fazer um que corta só um e na ordem Mas gostei xD, apesar que usaria o gsub do oneshot Link para o comentário Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Janeiro 23, 2013 Share Postado Janeiro 23, 2013 Então, caras, percebi essa dúvida aí de vocês, só dando uma esclarecida. A função string.gsub tem essa propriedade, ela é usada da seguinte maneira: string.gsub(s, pattern, repl[, n]) Esse n que é opcional ao declarar a função, é o número de vezes que ele vai substituir algo, ou seja: local s = "Teste Teste" Se você fizer isso com a função string.gsub, string.gsub(s, "Teste", "") No fim, ele vai retornar uma cadeia vazia, agora se você fizer isso: string.gsub(s, "Teste", "", 1) Ele vai retornar: " Teste" Com o espaço ali, já que não adicionamos na nossa pattern de busca. Espero que tenham compreendido. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados