到目前为止,我一直在要求用户发送一个整数(来自选项:1,2,3,4或5)作为对消息的可能回复。然后我向用户回复他们选择的整数,然后再转到下一条消息。所以我的消息有以下结构:
Messages = [
{"1"=>"You chose 1.",
"2"=>"You chose 2.",
"message"=> "Pick 3 or 4. 3) Apples 4) Oranges."},
{"3"=>"You chose Apples.",
"4"=>"You chose Oranges.",
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"},
]
我使用以下调用呈现我的消息:
say "#{messages[$status.to_i][$reply]} #{messages[$status.to_i]['message']}"
现在我需要用户输入原始内容,例如他/她的出生日期(例如07May90可能是一个完整的输入)。所以我需要以下情况。
Messages = [
{"1"=>"You chose 1.",
"2"=>"You chose 2.",
"message"=> "What is your date of birth?"},
{"DoB"=>"You chose [whatever user inputs e.g. 07May90].",
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"},
]
如何将原始输入返回给用户,例如如果他们通过输入07May90回复DoB问题,我想说“你选择了07May90。” (如上所述)。
答案 0 :(得分:0)
让人想到的一种方法是使用sprintf
message = "You picked %s"
value = "07May90"
puts sprintf(message, value)
对你而言,这并不是特别漂亮,但它会起作用。