Modul:String: Unterschied zwischen den Versionen

p.maxWordLen(s, dlist)
(+ maxWordLen())
Markierung: Zurückgesetzt
(p.maxWordLen(s, dlist))
Markierung: Zurückgesetzt
Zeile 107: Zeile 107:
end
end


function p.maxWordLen(s)
function p.maxWordLen(s, dlist)
-- returns the maximum word length of a string
-- returns the maximum word length of a string
dlist = dlist or " " -- delimiter chars, default " " (space only)
local max_word_len = 0
local max_word_len = 0
s = p.strip(s)
s = p.strip(s)
local s_len = string.len(s)
if #s > 0 then
if s_len > 0 then
local start, word_len = 1
local start, word_len = 1
repeat
repeat
space = string.find(s, " ", start)
local delimiter = 0
if space == nil then
for i = start, #s do
word_len = s_len - start + 1
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
else
word_len = space - start
word_len = delimiter - start
start = space + 1
start = delimiter + 1
end
end
if word_len > max_word_len then
if word_len > max_word_len then
max_word_len = word_len
max_word_len = word_len
end
end
until space == nil
until delimiter == 0
end
end
return max_word_len
return max_word_len