我怎么能在多行分割字符串,如下面?

var text:String = "This is some text
                   over multiple lines"

当前回答

加上@Connor的回答,也需要有\n。以下是修改后的代码:

var text:String = "This is some text \n" +
                  "over multiple lines"

其他回答

一种方法是将标签文本设置为attributedText,并更新字符串变量以包含换行符的HTML (<br />)。

例如:

var text:String = "This is some text<br />over multiple lines"
label.attributedText = text

输出:

This is some text
over multiple lines

希望这能有所帮助!

加上@Connor的回答,也需要有\n。以下是修改后的代码:

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"

这是我注意到的斯威夫特的第一件令人失望的事情。几乎所有脚本语言都允许多行字符串。

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"

下面是一个代码片段,用n个字符分隔字符串:

//: A UIKit based Playground for presenting user interface

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
    override func loadView() {

        let str = String(charsPerLine: 5, "Hello World!")
        print(str) // "Hello\n Worl\nd!\n"

    }
}

extension String {

    init(charsPerLine:Int, _ str:String){

        self = ""
        var idx = 0
        for char in str {
            self += "\(char)"
            idx = idx + 1
            if idx == charsPerLine {
                self += "\n"
                idx = 0
            }
        }

    }
}