2014-06-14 48 views
2

如何統計lua字符串中的子數組數量。如何統計lua字符串中的子數組數量

我有一個LUA串在以下格式,

{{ 「engName1」: 「測試1」, 「validDurPeriod」:0 「其appStatus」:2 「engName3」: 「」, 「 ExtraInfo「:{」returnPeriod「:7,」stayType「:50,」fingerprintInd「:49,」stayPeriod「:6,」medicalInd「:49},} {」engName1「:」Test2「,」validDurPeriod「: 3,「appStatus」:2,「engName3」:「」,}, {「engName1」:「Test3」,「validDurPeriod」:2,「appStatus」:2,「engName3」:「」ExtraInfo「: 「returnPeriod」:7,「stayType」:50,「fingerprintInd」:49,「stayPeriod」:6,「medicalInd」:49} },{「engName1」:「Test4」,「validDurPeriod」 appStatus「:2,」engName3「:」「, },}

我希望計算LUA串子陣列的數量, 像{{},{},{},{}}這裏數爲4

我想下面的代碼的東西檢查它包含數組,但無法獲得確切的計數。 下面代碼工作單陣列,但不工作的多陣列

function checkType(sample) 

if string.startswith(sample, "{{", true) or string.startswith(sample, "{ {", true) or string.startswith(sample, "{ {", true) then 
return true; 
else 
return false; 
end 
end 
+1

你試過看着JSON庫? – hjpotter92

+0

爲什麼你需要數這些?你想達到什麼目的? – lhf

回答

0

如果您的表工作正常,你應該能夠使用函數table.getn(table)。

例子:

print(table.getn{10,2,4})   --> 3 
print(table.getn{10,2,nil})  --> 2 
print(table.getn{n=1000})   --> 1000 

a = {} 
print(table.getn(a))    --> 0 

我希望做的伎倆;)

來源:19.1 - Array Size

+0

不僅僅是'#a'會更好,也是因爲向前兼容5.2? – nonchip

1

如果s包含您的字符串,然後n下面包含數:

local _,n=s:gsub("[^{}]",""):gsub("{}","") 
+0

爲什麼你需要數這些?根據字符串中找到的元素數量,我需要運行for循環並顯示這些值。 –

相關問題