lua

2012-10-03 12 views
6

में किसी सरणी में एक स्ट्रिंग और स्टोर को विभाजित करें मुझे एक स्ट्रिंग को विभाजित करने और उसे सरणी में स्टोर करने की आवश्यकता है। यहां मैंने string.gmatch विधि का उपयोग किया है, और यह अक्षर को बिल्कुल विभाजित करता है, लेकिन मेरी समस्या यह है कि सरणी में कैसे स्टोर किया जाए? यहाँ मेरी लिपि है। मेरी नमूना स्ट्रिंग प्रारूप: touchedSpriteName = स्प्राइट, 10,lua

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

अगर मैं प्रिंट (objProp) ने अपने दे सटीक मान गुलाब।

उत्तर

4

आपकी अभिव्यक्ति केवल एक मान देता है। आपके शब्द कुंजी में समाप्त हो जाएंगे, और मान खाली रहेगा।

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

यह प्रिंट Sprite (link ideone पर डेमो के लिए): आप इस तरह एक आइटम से अधिक पुनरावृति करने के लिए, पाश को फिर से लिखने चाहिए।

+0

हाय dasblinkenlight, धन्यवाद और अभी-अभी इस लिंक .. http://stackoverflow.com/questions/1426954/split-string-in-lua से एक ही जवाब मिल? RQ = 1 – ssss05

4

यहां एक अच्छा फ़ंक्शन है जो एक सरणी में स्ट्रिंग को विस्फोट करता है। (तर्क divider कर रहे हैं और 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 
संबंधित मुद्दे