Ir para conteúdo

retireCharactersInArrayString(string, array)


caotic

Posts Recomendados

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 por caotic
Link para o comentário
Compartilhar em outros sites

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 por Oneshot
Link para o comentário
Compartilhar em outros sites

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

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...