2012-10-03 49 views
6

文字列を分割して配列に格納する必要があります。ここで私はstring.gmatchメソッドを使用し、その文字を正確に分割しましたが、私の問題は配列に格納する方法ですか?ここに私のスクリプトです。 私のサンプル文字列フォーマット:私は(objProp)その正確な値を与える印刷する場合touchedSpriteName =スプライト、10は、文字列を分割してluaの配列に格納

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

上昇しました。

答えて

4

式は1つの値しか返しません。あなたの言葉は鍵で終わり、値は空のままです。あなたはこのように、一つのアイテムを反復するループを書き直す必要があります。これは、(ideoneにデモするlinkSpriteを印刷し

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

+0

(引数がdividerstringある)dasblinkenlightこんにちは、ありがとう、ちょうど今http://stackoverflow.com/questions/1426954/split-string-in-lua ..このリンクから、同じ答えを得ますか? rq = 1 – ssss05

4

文字列を配列に分解する便利な関数です。

-- 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 
関連する問題