Difference between revisions of "Module:StringHelpers"
Jump to navigation
Jump to search
| (46 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
if (dashIndex ~= nil) | if (dashIndex ~= nil) | ||
then | then | ||
| − | return | + | if (dashIndex - 3 > 0 and tonumber(string.sub(param.args[1], dashIndex - 3, dashIndex -3))) |
| + | then | ||
| + | return string.sub(param.args[1], dashIndex - 3, dashIndex - 1); | ||
| + | end | ||
| + | if (tonumber(string.sub(param.args[1], dashIndex - 2, dashIndex -2))) | ||
| + | then | ||
| + | return string.sub(param.args[1], dashIndex - 2, dashIndex - 1); | ||
| + | end | ||
| + | if (tonumber(string.sub(param.args[1], dashIndex - 1, dashIndex -1))) | ||
| + | then | ||
| + | return string.sub(param.args[1], dashIndex - 1, dashIndex - 1); | ||
| + | end | ||
| + | else | ||
| + | if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 2))) | ||
| + | then | ||
| + | i = string.len(param.args[1]) - 2; | ||
| + | return string.sub(param.args[1], i) | ||
| + | end | ||
| + | if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 1))) | ||
| + | then | ||
| + | i = string.len(param.args[1]) - 1; | ||
| + | return string.sub(param.args[1], i) | ||
| + | else | ||
| + | return string.sub(param.args[1], string.len(param.args[1])) | ||
| + | end | ||
end | end | ||
| + | end | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
return p | return p | ||
Latest revision as of 18:16, 12 April 2020
Module supports numbers with max 3 digits.
Tests
Simple question
| Expected | Actual |
|---|---|
| 150 | 150 |
| 15 | 15 |
| 7 | 7 |
| 150 | 150 |
| 15 | 15 |
| 7 | 7 |
Complex question
| Expected | Actual |
|---|---|
| 6 | 6 |
| 7 | 7 |
| 10 | 10 |
| 99 | 99 |
| 101 | 101 |
| 6 | 6 |
| 7 | 7 |
| 10 | 10 |
| 99 | 99 |
| 101 | 101 |
local p = {}
function p.getParagraphFromQuestion(param)
dashIndex = string.find(param.args[1], '-', 1, true);
if (dashIndex ~= nil)
then
if (dashIndex - 3 > 0 and tonumber(string.sub(param.args[1], dashIndex - 3, dashIndex -3)))
then
return string.sub(param.args[1], dashIndex - 3, dashIndex - 1);
end
if (tonumber(string.sub(param.args[1], dashIndex - 2, dashIndex -2)))
then
return string.sub(param.args[1], dashIndex - 2, dashIndex - 1);
end
if (tonumber(string.sub(param.args[1], dashIndex - 1, dashIndex -1)))
then
return string.sub(param.args[1], dashIndex - 1, dashIndex - 1);
end
else
if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 2)))
then
i = string.len(param.args[1]) - 2;
return string.sub(param.args[1], i)
end
if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 1)))
then
i = string.len(param.args[1]) - 1;
return string.sub(param.args[1], i)
else
return string.sub(param.args[1], string.len(param.args[1]))
end
end
end
return p