7

文字列を分割して配列に格納する必要があります。ここでstring.gmatchメソッドを使用し、文字を正確に分割しましたが、私の問題は配列に格納する方法ですか? これが私のスクリプトです。私のサンプル文字列形式: touchedSpriteName = Sprite,10,rose

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

print(objProp) の場合、正確な値が得られます。

4

3 に答える 3

5

式は1つの値のみを返します。あなたの言葉はキーになり、値は空のままになります。次のように、ループを書き直して1つのアイテムを反復処理する必要があります。

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(ideoneのデモへのリンク)。

于 2012-10-03T13:19:56.950 に答える
5

これは、文字列を配列に分解する便利な関数です。(引数は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
于 2012-10-04T08:32:34.577 に答える