接受命令提示符中的单词并转换为字符串列表

时间:2012-05-03 16:55:08

标签: scheme racket

我想在DrRacket中编写一个代码,它接受来自命令提示符的多个单词,并将它们转换为字符串列表。例如。如果我在提示符中输入你好,你怎么做,它应该把它转换成一个列表'(“你好”“如何”“做”“你”“做”)。 DrRacket有可能吗?

我试过这个:     (定义inp-lst(读))

运行此代码时,命令promt中会显示一个输入栏。但是当我进入上面一行时,inp-lst的值只是'hello 。有人可以帮忙吗?

2 个答案:

答案 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'