(Swift)如何在字符串中打印“\”字符?

18

我尝试打印它,但它被跳过了,因为它是一个转义字符。例如,输出应该如下所示。

\correct

再次使用反斜杠进行转义:"ab\\cd" 将得到 "ab\cd" - Eric Aya
1
这在 Swift 书中有记录,并且在对你之前的问题的评论中提供了相关章节的链接。 - Martin R
2
不知道为什么这个问题会得到那些负面反馈,因为它确实帮了我。问题是,当在playground中时,双反斜杠没有显示在右侧面板中。 - ramazan polat
4个回答

63

为了以后的参考:

\0 – Null character (that is a zero after the slash)
\\ – Backslash itself.  Since the backslash is used to escape other characters, it needs a special escape to actually print itself.
\t  – Horizontal tab
\n – Line Feed
\r  – Carriage Return
\”  – Double quote.  Since the quotes denote a String literal, this is necessary if you actually want to print one.
\’  – Single Quote.  Similar reason to above.

1
为什么单引号需要转义呢? - Duncan C
@DuncanC 因为编译器无法确定它是字符串的结尾还是字符串内的双斜杠。 - ramazan polat
7
在Swift 4中, "\"会给你"\"。 - Aviram Netanel
在 Swift 中如何打印单引号? - Mayur Shinde

19

使用以下代码适用于 Swift 5, Xcode 10.2

let myText = #"This is a Backslash: \"#
print(myText)

输出:

这是一个反斜杠:\

在Swift 5中,现在不需要添加双斜杠来使用单个斜杠,但现在需要在某些字符之前加上斜杠,例如单引号、双引号等。

请参阅此帖子以获取有关Swift 5的最新更新:

https://www.hackingwithswift.com/articles/126/whats-new-in-swift-5-0


7
在 Swift 5 和 Xcode 11.1 上尝试这个代码,会输出:"这是一个反斜杠:\"。 - Alan S
我正在使用Swift 5.1,它对我来说完美无缺。关于Swift 5,我不确定,但我确信它适用于Swift 5.1。 - Mikael Weiss

6
var s1: String = "I love my "
let s2: String = "country"
s1 += "\"\(s2)\""
print(s1)

它将打印出“我爱我的 '国家'”


5

当字符串中使用反斜杠字符\时,它会充当转义字符。这意味着您可以在字符串中使用双引号,只需用\进行前置即可。同样地,反斜杠字符本身也适用于此规则,也就是说,println("\\")的结果只会打印一个\


1
感谢您的教导,Eric,并为这样一个新手错误道歉。我一直依赖右侧Playground的输出,从未使用过底部面板。现在我明白了。你一定是个模特吧?我在这个主题上又开了一个线程,它也应该消失了。 - Wayne Henderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接