local t = "{{2173,1},{2160,5}}"
print(#t) -- 19?? wrong
変換する方法は?テーブル文字列を実際のテーブルに変換する
local t = {{2173,1},{2160,5}}
print(#t) -- 2 correct
local t = "{{2173,1},{2160,5}}"
print(#t) -- 19?? wrong
変換する方法は?テーブル文字列を実際のテーブルに変換する
local t = {{2173,1},{2160,5}}
print(#t) -- 2 correct
あなたが探しているテーブルを返します。これは、(あなたのLuaのバージョンによって異なります)load
またはloadstring
て文字列を実行することができます。ここでは
local t = "{{2173,1},{2160,5}}"
t = (loadstring or load)("return "..t)()
print(#t) -- 2
は、入力のためのアドホックなソリューションです。あなたは与えました:
local s = "{{2173,1},{2160,5}}"
local t = {}
local n = 0
for a,b in s:gmatch("(%d+),(%d+)") do
n = n + 1
t[n] = {a,b}
end
for k,v in ipairs(t) do print(k,v[1],v[2]) end
が働いた!ありがとう!! –
@ LuaTeam91、良い。ところで、別のユーザー名を使用したいと思います... – lhf
「loadstringまたはload'ですか? –
も働いています!そして確かに簡単な方法で!ニース! –
Lua 5.1では、 'load(loadまたはloadstring)'は 'load'と評価され、' load'は関数を引数として求めます。 'load(" return ")'は実行時エラーを引き起こします。 –