在 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)"替换它以获得你想要的结果。否则就没了。