在 Swift 中,如何将字符串变量中的"invisible"转义字符获取到另一个变量中



在 Swift 中,我可以创建一个字符串变量,如下所示:

let s = "HellonMy name is Jack!"

如果我使用 s,输出将是:

Hello
My name is Jack!

(因为 是换行符)

但是,如果我想以编程方式获取 s 变量中的原始字符怎么办? 就像我想实际做这样的事情一样:

let sRaw = s.raw

我编造了.raw,但像这样。因此,sRaw 的文字值将为:

HellonMy name is Jack!

它会从字面上打印字符串,并带有文字""

谢谢!

换行符是字符串中包含的"原始字符"。

字符串的

形成方式(在本例中来自源代码中带有转义序列的字符串文本)不会保留(它仅在源代码中可用,但不保留在生成的程序中)。如果您从文件、数据库、多个文字的串联、多行文字、数字转义序列等中读取它,它看起来会完全相同。

如果你想打印换行符作为n你必须把它转换回来(通过做文本替换) - 但同样,你不知道字符串是否真的是从这样的文字创建的。

您可以使用

转义字符执行此操作,例如 n

let secondaryString = "really"
let s = "HellonMy name is (secondaryString) Jack!"
let find = Character("n")
let r = String(s.characters.split(find).joinWithSeparator(["\","n"]))
print(r) // -> "HellonMy name is really Jack!"

但是,一旦生成字符串s(secondaryString)就已经值为"really",除了替换的单词之外,没有任何痕迹。我想如果你已经知道内插字符串,你可以搜索它并用"\\(secondaryString)"替换它以获得你想要的结果。否则就没了。

最新更新