Objective-C代码:
NSString *str = @"hi";
NSString *strDigit = @"1934"; (or @"193" may be a 3 digit or 4 digit value)
[dayText appendFormat:@"%@%4s,str,[strDigit UTF8String]];
Objective-C代码处理输出字符串时出现当前对齐,输出为3或4位数。它正确地与左对齐并且与它的位数无关。任何人都知道如何在Swift中处理这个问题?
在Swift中我尝试使用下面的代码,字符串没有根据位数调整对齐。
textForTrip += "\(str) \(String(format:"%4s", (strDigit.utf8))"
答案 0 :(得分:2)
%s
格式需要指向(以NULL结尾的)C字符串的指针
作为参数,可以使用withCString
方法获得。
这将产生与Objective-C代码相同的输出:
let str = "Hi"
let strDigit = "193"
let text = strDigit.withCString {
String(format: "%@%4s", str, $0)
}
print(text)
如果将数字存储为整数而不是a,则会更容易 字符串:
let str = "Hi"
let number = 934
let text = String(format: "%@%4d", str, number)
print(text)
答案 1 :(得分:0)
尝试以下方法,这可能会对您有所帮助
let strDigit = "\("1934".utf8)" //(or @"193" may be a 3 digit or 4 digit value)
var dayText = "Hello, good morning."
dayText += "\(strDigit.prefix(3))"