我想用另一个字符串格式化一个字符串,如下所示:
var str = "Hello, playground"
print (String(format: "greetings %s", str))
这导致了这个美丽的结果:
问候哰1
我尝试使用%@并且它可以工作但是,因为我从另一种编程语言获得格式字符串,我想,如果可能的话,使用%s标签。有办法吗?
好的,我会用%@替换%s。 Python是我的朋友。
谢谢!
如果格式来自可靠的外部源,您可以将其转换为用%s
替换%@
的出现:
所以,而不是:
String(format: "greetings %s", str)
你做:
String(format: "greetings %s".replacingOccurrences(of: "%s", with: "%@"), str)
If the format is complex,一个简单的替代品将无法正常工作。例如:
%1$s
%%s
%-10s
在类似的情况下,我们需要坚持使用C字符串。
所以代替:
String(format: "greetings %s", str)
你做:
str.withCString {
String(format: "greetings %s", $0)
}