连接中的字符串插值产生两个双引号而不是一个 (JuliaLang)

A string interpolation within concatenation is producing two double quotes instead of one (JuliaLang)

我试图在 JuliaLang 中的串联过程中在字符串中包含一个双引号,如下所示:

tmpStr = string(tmpStr, string("graph [label=\"  hi \"]; "))

writedlm写的文本文件中的输出是:

 graph [label=""  hi ""]

如何修改字符串插值以仅包含一个双引号而不是重复?

额外的双引号来自writedlmwritedlm使用标准的CSV转义方式,特殊字符用双引号括起来,用""表示单双引号。这样就可以了,只要你在读取文件的时候做逆变换就可以了。

跟踪此类问题的一个好方法是创建一个最小的工作示例。在这种情况下,类似于:

writedlm("tst.tst",["\""])

tst.tst,但 tst.tst 现在有:

""""

但是当正确阅读时:

julia> data = readdlm("tst.tst")
1×1 Array{Any,2}:
 "\""

符合预期。

另一种避免获得额外引号的方法是将 quotes=false 添加为 writedlm 的选项,如下例所示:

julia> writedlm(STDOUT,["\""],quotes=false)
"