15.082
Bearbeitungen
(+ 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) | ||
if #s > 0 then | |||
local start, word_len = 1 | local start, word_len = 1 | ||
repeat | repeat | ||
local delimiter = 0 | |||
if | for i = start, #s do | ||
word_len = | 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 = | word_len = delimiter - start | ||
start = | 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 | until delimiter == 0 | ||
end | end | ||
return max_word_len | return max_word_len | ||