在Swift中使用variadic params打印字符串,不带逗号,换行符和括号

时间:2016-06-30 14:39:53

标签: swift swift2

当我尝试使用Swift的String(format: format, args)方法时,我发现如果不添加换行符(\n)并添加括号,我就无法直接打印格式化的字符串。

例如,我有一个这样的代码:

func someFunc(string: String...) {
    print(String(format: "test %@", string))
}

let string = "string1"
someFunc(string, "string2")

结果将是:

"test (\n    string1,\n    string2\n)\n"

但是,我打算像这样提供结果:

"test string1 string2"

如何制作括号并且\n不打印?

2 个答案:

答案 0 :(得分:2)

由于string参数是一个序列,您可以在其上使用joinWithSeparator,如下所示:

func someFunc(string: String...) {
    print(string.joinWithSeparator(" "))
}

someFunc("quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog")

答案 1 :(得分:0)

首先需要连接输入字符串列表,否则它将作为列表打印,因此使用逗号和括号。您还可以使用字符集从字符串的末尾删除换行符和空格。

var stringConcat : String = ''
for stringEntry in string {
    stringConcat += stringEntry.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
}

然后打印出stringConcat。