2012-10-03 18 views
6

Devo dividere una stringa e archiviarla in una matrice. qui ho usato il metodo string.gmatch e la sua suddivisione esatta dei caratteri, ma il mio problema è come archiviare in un array? ecco il mio copione mio campione formato stringa: touchedSpriteName = Sprite, 10, è salitoDividere una stringa e archiviarla in una matrice in lua

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

se stampo (objProp) i suoi dando valori esatti.

risposta

4

L'espressione restituisce un solo valore. Le tue parole finiranno nelle chiavi e i valori rimarranno vuoti. Si dovrebbe riscrivere il ciclo per iterare su un oggetto, in questo modo:

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]) 

Questo stampa Sprite (link di demo su Ideone).

+0

hi dasblinkenlight, Grazie a voi e solo ora ottenere la stessa risposta da questo link .. http://stackoverflow.com/questions/1426954/split-string-in-lua? RQ = 1 – ssss05

4

Ecco una funzione che esplode una stringa in una matrice. (Gli argomenti sono divider e 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 
Problemi correlati