Ir para conteúdo

Fixstring(String)


20cm

Posts Recomendados

O que ela faz?

Ela transforma uma string, por exemplo, de "eitor laba v1d4 l0k4" para "Eitor Laba V1d4 L0k4"

Pode-se dizer que ela deixa em caixa alta a primeira letra de cada palavra de uma string, e, se forem números, não faz nada.

 

Aqui vai ela:

 

function fixString(string)
local k = string.explode(string," ")
local x = ""
local y = 0
for i = 1, #k do
if y == 0 then
x = x ..string.sub(k[i],0,1):upper()..string.sub(k[i],2)
y = 1
else
x = x .." "..string.sub(k[i],0,1):upper()..string.sub(k[i],2)
end
end
return x
end

 

 

Flw!

Editado por 20cm
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 3 weeks later...

Um string.gmatch.

 


function fixStr(str)
local ret = ""
for n in string.gmatch(str, "%w+") do
	ret = ret .. string.sub(n, 0, 1):upper() .. string.sub(n, 2) .." "
end
return ret
end

 

Na verdade essa função deixa um espaço depois da última palavra (fixString("camelo") > "camelo_")

Link para o comentário
Compartilhar em outros sites

Porque ele deixou um espaço na ret

 

ret = ret ..string.sub(n,0,1):upper()..string.sub(n,2).."AQUI"

 

é só deixar assim

 

ret = ret ..string.sub(n,0,1):upper()..string.sub(n,2)..""

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

achu q assim fica melhor '--'

function fixStr(str)
local ret = ""
for n in string.gmatch(str, "%w+") do
	ret = ret .. (ret == "" and "" or " ") .. string.sub(n, 0, 1):upper() .. string.sub(n, 2):lower()
end
return ret
end

n pode esquecer do lower() no final.. ja q o usuario pode escrever tpw..

SLiCer, SLICER, sLIcER... kk

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Skymagnum, esse não é o ponto, eu sei que isso põe espaço -.- o que a função faz é dividir palavras por espaço (%w+) , deixar a primeira letra em caixa alta, depois por o resto, e por um espaço

O que eu to querendo dizer é que, se eu "fixo" a string "mamãe quer sexo" ela sai como "Mamãe Quer Sexo" (note o espaço no final) - e nenhum de vocês conseguiram fazer com que resultasse em "Mamãe Quer Sexo" (não que eu ache que vocês não consigam) acho que vocês [mais o oneshot] deviam prestar mais atenção antes de postar)

 

enfim , obrigado bjos

Link para o comentário
Compartilhar em outros sites

Ué, meu velho, vem falar para eu prestar atenção, mas não vi você consertar esse tal bug de deixar espaços. Você tem que entender que eu encurto funções dos outros jogadores, para que eles notem e aprendam as funções nativas do Lua que são muito úteis. Não tem razão nenhuma para você ficar irritadinho. Se viu que eu errei, corrija e ganhe a fama de "corrigi o erro do Um Tiro".

 

Enfim, tá aí.

 

function fixStr(str)
   local ret = ""
   for n in string.gmatch(str, "%w+%s*") do
       ret = ret .. string.sub(n, 0, 1):upper() .. string.sub(n, 2)
   end
   return ret
end

 

Ah, também desenvolvi seu rank por storage que você queria lá na seção de websites. Viu como eu sou um cara legal?

Link para o comentário
Compartilhar em outros sites

Ué, meu velho, vem falar para eu prestar atenção, mas não vi você consertar esse tal bug de deixar espaços. Você tem que entender que eu encurto funções dos outros jogadores, para que eles notem e aprendam as funções nativas do Lua que são muito úteis. Não tem razão nenhuma para você ficar irritadinho. Se viu que eu errei, corrija e ganhe a fama de "corrigi o erro do Um Tiro".

 

Enfim, tá aí.

 

function fixStr(str)
local ret = ""
for n in string.gmatch(str, "%w+%s*") do
	ret = ret .. string.sub(n, 0, 1):upper() .. string.sub(n, 2)
end
return ret
end

 

Ah, também desenvolvi seu rank por storage que você queria lá na seção de websites. Viu como eu sou um cara legal?

minha função era aquela quem tinha que consertar a função era tu, não eu lol

mas vlw pelo rank s2

Link para o comentário
Compartilhar em outros sites

Eu fiz uma função assim semana passada:

 

function string:fix()
return string.upper(self:sub(1,1)) .. self:sub(2):lower()
end

function string:fixall()
local R = {}
local t = string.explode(self, ' ')
for i,v in pairs (t) do
	table.insert(R,v:fix())
end
return table.concat(R,' ')
end 

 

A de cima pega só a 1º palavra e a outra pega todas.

Editado por iuniX
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...