Tokenize a string: Difference between revisions
Content added Content deleted
(add RPL) |
|||
Line 3,359: | Line 3,359: | ||
see substr("Hello,How,Are,You,Today", ",", ".") |
see substr("Hello,How,Are,You,Today", ",", ".") |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|RPL}}== |
|||
The program below fully complies with the task requirements, e.g. the input string is converted to a list of words, then the list is converted to a string. |
|||
{{works with|Halcyon Calc|4.2.8}} |
|||
{| class="wikitable" |
|||
! RPL code |
|||
! Comment |
|||
|- |
|||
| |
|||
≪ |
|||
"}" + "{" SWAP + STR→ |
|||
1 OVER SIZE '''FOR''' j |
|||
DUP j GET →STR 2 OVER SIZE 1 - SUB j SWAP PUT |
|||
'''NEXT''' |
|||
"" 1 3 PICK SIZE '''FOR''' j |
|||
OVER j GET + |
|||
'''IF''' OVER SIZE j ≠ '''THEN''' "." + '''END''' |
|||
'''NEXT''' SWAP DROP |
|||
≫ '<span style="color:blue">'''TOKNZ'''</span>' STO |
|||
| |
|||
<span style="color:blue">'''TOKNZ'''</span> ''<span style="color:grey">( "word,word" → "word.word" )</span> '' |
|||
convert string into list (words being between quotes) |
|||
loop for each list item |
|||
convert it to a string, remove quotes at beginning and end |
|||
loop for each list item |
|||
add item to output string |
|||
if not last item, append "." |
|||
clean stack |
|||
return output string |
|||
|} |
|||
"Hello,How,Are,You,Today" <span style="color:blue">'''TOKNZ'''</span> |
|||
</pre> |
|||
'''Output:''' |
|||
<span style="color:grey"> 1:</span> "Hello.How.Are.You.Today" |
|||
If direct string-to-string conversion is allowed, then this one-liner for HP-48+ will do the job: |
|||
≪ 1 OVER SIZE '''FOR''' j '''IF''' DUP j DUP SUB "," == '''THEN''' j "." REPL '''END NEXT''' ≫ '<span style="color:blue">'''TOKNZ'''</span>' STO |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |