String 换行方案(Racket)

String 换行方案(Racket),string,scheme,racket,String,Scheme,Racket,当您使用“display”这样的命令写入时,可能会有一行新行 但问题是没有任何代码可以在字符串中包含新行?比如: "exa \n mple" 预期-> exa mple 我所拥有的: exa \n mple 我在racket文档或其他任何地方都找不到任何信息。如果您需要在字符串之间添加换行符,那么这将起作用: (define s (string-append "exa " "\n" " mple")) s => "exa \n mple" (display s) => e

当您使用“display”这样的命令写入时,可能会有一行新行

但问题是没有任何代码可以在字符串中包含新行?比如:

"exa \n mple" 
预期->

exa
 mple
我所拥有的:

exa \n mple

我在racket文档或其他任何地方都找不到任何信息。

如果您需要在字符串之间添加换行符,那么这将起作用:

(define s (string-append "exa " "\n" " mple"))
s
=> "exa \n mple"

(display s)
=> exa
    mple

在上面的代码段中,我使用<代码>字符串追加< /代码>在中间用一个换行符将两个字符串粘在一起。当您使用结果字符串

s
时,它之间将有一个换行符,例如通过显示它

显然,它将显示为
“exa\n mple”
,您不能期望字符串从一行跳到另一行,除非您显示、打印、显示、写入等等。

类似于:

(display "line\nhola")
我应该这样做


不知道你为什么需要上面贴的东西。

对于那些到这里来寻找如何做类似于Java的
println
或Python的
print
在行尾添加新行的人,racket有一个名为
displayln
的函数。更复杂的C格式打印可以使用
fprintf
在Racket中完成,看起来像一个“~n”被解释为换行符


Racket的许多打印功能都记录在这里:

是的,但是当你使用字符串时,“\n”不再工作了,你说“不再工作”是什么意思?它工作正常,请注意,我使用了两个反斜杠来转义thus,您的意思是:如果您输入以下代码:(字符串附加“bra”“\\n”“va”),您在“bra”行下取“va”?我使用的是带有方言球拍的scheme,“\\n”不会开始新行。我知道,如果使用(显示),您将始终有一个带有“\n”的新行,但我的问题是是否有方法直接在字符串中添加新行。假设我将使用它在scheme的GUI中显示,因此新行必须直接添加到字符串中。@Asqan这正是我最后一次尝试所做的:看,您只需在两个字符串之间放置一个“\n”(不转义!),并在显示时附加它们,即结果字符串,或者used将在中间有一个换行符。问题不清楚,你还需要什么?嗯,这在我的mac终端上的球拍解释器中工作。你指的是Racket博士的翻译还是Racket博士的翻译?@JasonYeo,用Racket方言的Racket博士翻译
(display "line\nhola")