2012-10-03 61 views
6

Tôi cần chia chuỗi và lưu trữ nó trong một mảng. ở đây tôi sử dụng phương pháp string.gmatch, và chia tách các ký tự chính xác, nhưng vấn đề của tôi là làm thế nào để lưu trữ trong một mảng? đây là kịch bản của tôi. định dạng chuỗi mẫu của tôi: touchedSpriteName = Sprite, 10, tăngTách một chuỗi và lưu trữ trong một mảng trong lua

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

nếu tôi in (objProp) cho các giá trị chính xác của nó.

Trả lời

4

Biểu thức của bạn chỉ trả về một giá trị. Các từ của bạn sẽ kết thúc bằng các khóa và các giá trị sẽ vẫn trống. Bạn nên viết lại vòng lặp để lặp qua một mục, như thế này:

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

này in Sprite (link để giới thiệu về ideone).

+0

hi dasblinkenlight, Cảm ơn bạn và chỉ cần bây giờ có được câu trả lời tương tự từ liên kết này .. http://stackoverflow.com/questions/1426954/split-string-in-lua? rq = 1 – ssss05

4

Đây là một chức năng đẹp phát nổ một chuỗi thành một mảng. (Các đối số có dividerstring)

-- 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 
Các vấn đề liên quan