我怎么能在多行分割字符串,如下面?
var text:String = "This is some text
over multiple lines"
我怎么能在多行分割字符串,如下面?
var text:String = "This is some text
over multiple lines"
当前回答
从Swift 4.0开始,可以使用多行字符串,但有一些规则:
你需要用三个双引号"""来开始和结束字符串。 你的字符串内容应该从它自己的行开始。 结尾的"""也应该在自己的行上开始。
除此之外,你就可以开始了!这里有一个例子:
let longString = """
When you write a string that spans multiple
lines make sure you start its content on a
line all of its own, and end it with three
quotes also on a line of their own.
Multi-line strings also let you write "quote marks"
freely inside your strings, which is great!
"""
查看Swift 4的新功能以获得更多信息。
其他回答
这是我注意到的斯威夫特的第一件令人失望的事情。几乎所有脚本语言都允许多行字符串。
c++ 11添加了原始字符串字面值,允许您定义自己的终止符
c#有它的@literals用于多行字符串。
即使是普通的C以及老式的c++和Objective-C也允许通过将多个文字相邻放置来进行连接,因此引号被折叠。当你这样做的时候,空格不算数,所以你可以把它们放在不同的行上(但需要添加你自己的换行符):
const char* text = "This is some text\n"
"over multiple lines";
由于swift不知道你已经把你的文本超过多行,我必须修复connor的样本,类似于我的C样本,显式地声明换行:
var text:String = "This is some text \n" +
"over multiple lines"
Swift 4支持多行字符串字面值。除了换行符,它们还可以包含未转义的引号。
var text = """
This is some text
over multiple lines
"""
旧版本的Swift不允许你在多行上有一个字面值,但你可以在多行上添加字面值:
var text = "This is some text\n"
+ "over multiple lines\n"
下面的例子描述了一个多行连续,使用圆括号作为一个简单的解决方法,以解决Xcode 6.2 Beta版本的Swift错误,它抱怨表达式太复杂,无法在合理的时间内解析,并考虑将其分解为更小的片段:
.
.
.
return String(format:"\n" +
(" part1: %d\n" +
" part2: %d\n" +
" part3: \"%@\"\n" +
" part4: \"%@\"\n" +
" part5: \"%@\"\n" +
" part6: \"%@\"\n") +
(" part7: \"%@\"\n" +
" part8: \"%@\"\n" +
" part9: \"%@\"\n" +
" part10: \"%@\"\n" +
" part12: \"%@\"\n") +
" part13: %f\n" +
" part14: %f\n\n",
part1, part2, part3, part4, part5, part6, part7, part8,
part9, part10, part11, part12, part13, part14)
.
.
.
我尝试了几种方法,但找到了一个更好的解决方案: 只需使用“文本视图”元素。它的文本自动显示多行! 找到这里:UITextField多行
你可以使用unicode equals for enter或\n并在你的字符串中实现它们。例如:\u{0085}。