1

コマンドプロンプトから複数の単語を受け取り、それらを文字列のリストに変換するコードをDrRacketに書きたいと思います。たとえば。プロンプトで「hello how do you do」と入力すると、リスト'("hello" "how" "do" "you" "do")に変換されます。DrRacketで可能ですか?

私はこれを試しました: (define inp-lst (read))

このコードを実行すると、コマンド プロンプトに入力バーが表示されます。しかし、上記の行を入力すると、inp-lst の値はただの'helloであることがわかりました。誰か助けてくれませんか?

4

2 に答える 2

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すると、入力したテキストを引用符で囲む必要はありません。

于 2012-05-03T17:10:07.667 に答える
0

'read' 関数は 1 つの式を読み取りますが、この場合は単一のシンボル 'hello.' です。あなたの意図は、#\newline で終わる 1 行を読み取り、単一の文字列を取得してから #\space で分割することです。「読み取り行」を試してください

于 2012-05-03T17:14:40.103 に答える