0

要获取字符串的第一个字符,我可以:

(sc) "asd" first
97

一个整数。

要制作一个字符串,我能找到的唯一方法是:

(sc) USE: strings math.ranges
(sc) "asd" first dup 
97
97    
(sc) [a,b] 
T{ range f 97 1 1 }    
(sc) >string
"a"

这似乎有点老套/笨拙。有没有更简洁的方法从字符串中获取一个字符,作为字符串?

4

1 回答 1

2

Factor 区分字符(只是 unicode 代码点,只是整数)和字符串(只是字符序列)。尝试例如:

IN: scratchpad CHAR: A .
65
IN: scratchpad CHAR: Ö . 
214
IN: scratchpad CHAR: 字 .
23383

所以你问这个问题可能是对某事有误解的表现。无论如何,要完成您的任务:

IN: scratchpad "Single character from a string" 5 swap nth 1string .
"e"

它抓取第六个字符并将其转换为一个字符长的字符串。

于 2016-03-16T21:19:33.083 回答