Modul:String: Unterschied zwischen den Versionen

splitAndStrip() nil handling
(p.maxWordLen(s, dlist))
Markierung: Zurückgesetzt
(splitAndStrip() nil handling)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 68: Zeile 68:
-- if list has no content, table will be empty
-- if list has no content, table will be empty
delimiter = delimiter or " "
delimiter = delimiter or " "
s = s .. delimiter
s = (s or "") .. delimiter
     local result = {}
     local result = {}
     local start = 1
     local start = 1
Zeile 105: Zeile 105:
end
end
return s_pre_bracket, s, s_post_bracket
return s_pre_bracket, s, s_post_bracket
end
function p.maxWordLen(s, dlist)
-- returns the maximum word length of a string
dlist = dlist or " " -- delimiter chars, default " " (space only)
local max_word_len = 0
s = p.strip(s)
if #s > 0 then
local start, word_len = 1
repeat
local delimiter = 0
for i = start, #s do
local c = string.sub(s, i, i)
for j = 1, #dlist do
if c == string.sub(dlist, j, j) then
delimiter = i
break
end
end
if delimiter ~= 0 then
break
end
end
if delimiter == 0 then
word_len = #s - start + 1
else
word_len = delimiter - start
start = delimiter + 1
end
if word_len > max_word_len then
max_word_len = word_len
end
until delimiter == 0
end
return max_word_len
end
end


return p
return p