2012-10-03 15 views
6

Potrzebuję podzielić ciąg znaków i zapisać go w tablicy. tutaj użyłem metody string.gmatch i jej dokładne dzielenie znaków, ale moim problemem jest jak przechowywać w tablicy? oto mój skrypt. mój przykładowy format string: touchedSpriteName = Sprite, 10, różaPodziel ciąg znaków i zapisz w tablicy w lua

objProp = {} 
for key, value in string.gmatch(touchedSpriteName,"%w+") do 
objProp[key] = value 
print (objProp[2]) 
end 

jeśli mogę wydrukować (objProp) jego podając dokładne wartości.

Odpowiedz

4

Twoje wyrażenie zwraca tylko jedną wartość. Twoje słowa zakończą się kluczami, a wartości pozostaną puste. Należy przepisać pętle iteracyjne nad jednym punkcie, tak:

objProp = { } 
touchedSpriteName = "touchedSpriteName = Sprite,10,rose" 
index = 1 

for value in string.gmatch(touchedSpriteName, "%w+") do 
    objProp[index] = value 
    index = index + 1 
end 

print(objProp[2]) 

Drukuje Sprite (link demo na ideone).

+0

hi dasblinkenlight, Dziękuję i właśnie teraz uzyskać tę samą odpowiedź z tego linku .. http://stackoverflow.com/questions/1426954/split-string-in-lua? rq = 1 – ssss05

4

Oto dobra funkcja, która eksploduje ciąg znaków do tablicy. (Argumenty są divider i string)

-- Source: http://lua-users.org/wiki/MakingLuaLikePhp 
-- Credit: http://richard.warburton.it/ 
function explode(div,str) 
    if (div=='') then return false end 
    local pos,arr = 0,{} 
    for st,sp in function() return string.find(str,div,pos,true) end do 
     table.insert(arr,string.sub(str,pos,st-1)) 
     pos = sp + 1 
    end 
    table.insert(arr,string.sub(str,pos)) 
    return arr 
end 
Powiązane problemy