我想在DrRacket中编写一个代码,它接受来自命令提示符的多个单词,并将它们转换为字符串列表。例如。如果我在提示符中输入你好,你怎么做,它应该把它转换成一个列表'(“你好”“如何”“做”“你”“做”)。 DrRacket有可能吗?
我试过这个: (定义inp-lst(读))
运行此代码时,命令promt中会显示一个输入栏。但是当我进入上面一行时,inp-lst的值只是'hello 。有人可以帮忙吗?
答案 0 :(得分:2)
首先,在引号之间输入您的输入,如下所示:
(define inp-lst (read))
"hello how do you do"
现在,您可以创建一个执行此操作的字符串列表:
(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")
编辑:
正如评论中指出的那样,read-line
可能是更好的选择:
(define inp-lst (read-line))
(regexp-split #px" " inp-lst)
> '("hello" "how" "do" "you" "do")
使用read-line
,您不需要用引号括住输入的文字。
答案 1 :(得分:0)
'read'函数读取一个表达式,在您的情况下,它是单个符号'hello'。你的目的是读取一行,以#\ newline结尾,得到一个字符串然后用#\ space拆分。试试'read-line'