如何在swift中格式化固定长度的字符串

Pei*_*ong 5 swift

例如:var str = String(格式:"%12s - %s","key","value")

我想要的是关键将持有长度为12的字符.键___________-值

(这里是下划线的空格)

谢谢.

Dim*_*lov 6

正如文档所说,COpaquePointer是一个不透明的C指针的包装器.不透明指针用于表示无法在Swift中表示的类型的C指针,例如不完整的结构类型.

关键是String- 本机Swift类型.我相信使用这个Swift String函数会更好:

let testString = "bla bli blah"
testString.stringByPaddingToLength(3, withString: "", startingAtIndex: 0) 
//output = "bla"
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

let testString = "bla bli blah"
testString.padding(toLength: 3, withPad: "", startingAt: 0) 
//output = "bla"
Run Code Online (Sandbox Code Playgroud)


rin*_*aro 4

基本上,要String使用 进行格式化String(format: _:...),我们可以使用%@

String(format: "%@ - %@", "key", "value")
Run Code Online (Sandbox Code Playgroud)

但是,我相信%@不支持“宽度”修饰符:你不能%12@等等。

因此,您必须转换StringCOpaquePointer可以格式化的格式%s

var key = "key"
var val = "value"

var str = String(format: "%-12s - %s",
    COpaquePointer(key.cStringUsingEncoding(NSUTF8StringEncoding)!),
    COpaquePointer(val.cStringUsingEncoding(NSUTF8StringEncoding)!)
)
// -> "key          - value"
Run Code Online (Sandbox Code Playgroud)