kob*_*chi 9 xcode nsmutablestring ios swift
我想使用appendFormat将字符串附加到NSMutableString,插入空格以获得字符串的最小长度.
在objective-c中,我刚刚使用过
[text.mutableString appendFormat:@"%-12s", "MyString"];
Run Code Online (Sandbox Code Playgroud)
我会的
"MyString "
Run Code Online (Sandbox Code Playgroud)
但在斯威夫特,我试过了
text.mutableString.appendFormat("%-12s", "MyString")
Run Code Online (Sandbox Code Playgroud)
我得到了一切,但不是"MyString".它似乎是一些随机字符,我不知道它来自哪里.
有没有人知道为什么会这样,我该怎么办?
感谢你们!
通过Ken关于Swift String对象不等同于Objective-C C样式字符串(以NULL终止的数组char
)的解释,我找到了此答案,该答案显示了如何将Swift String对象转换为Cstring,其%-12s
格式正确地起作用上。
您可以使用现有的格式字符串,如下所示:
text.mutableString.appendFormat("%-12s", ("MyString" as NSString).UTF8String)
Run Code Online (Sandbox Code Playgroud)
一些例子:
var str = "Test"
str += String(format:"%-12s", "Hello")
// "Test–yç " (Test, a dash, 11 random characters)
var str2 = "Test"
str2 += String(format:"%-12@", "Hello")
// "TestHello" (no padding)
var str3 = "Test"
str3 += String(format:"%-12s", ("Hello" as NSString).UTF8String)
// "TestHello " ('Hello' string is padded out to 12 chars)
Run Code Online (Sandbox Code Playgroud)
您应该使用String的方法stringByPaddingToLength()如下:
let anyString = "MyString"
let padedString = anyString.stringByPaddingToLength(12, withString: " ", startingAtIndex: 0) // "MyString "
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6427 次 |
最近记录: |