swift:在String中使用%s(格式:...)

问题描述 投票:13回答:2

我想用另一个字符串格式化一个字符串,如下所示:

var str = "Hello, playground"
print (String(format: "greetings %s", str))

这导致了这个美丽的结果:

问候哰1

我尝试使用%@并且它可以工作但是,因为我从另一种编程语言获得格式字符串,我想,如果可能的话,使用%s标签。有办法吗?

swift string format
2个回答
11
投票

好的,我会用%@替换%s。 Python是我的朋友。

谢谢!


4
投票

Solution 1: changing the format

如果格式来自可靠的外部源,您可以将其转换为用%s替换%@的出现:

所以,而不是:

String(format: "greetings %s", str)

你做:

String(format: "greetings %s".replacingOccurrences(of: "%s", with: "%@"), str)

Solution 2: changing the string

If the format is complex,一个简单的替代品将无法正常工作。例如:

  • 使用带有数字字符序列的说明符时:%1$s
  • 使用'%'字符后跟's':%%s
  • 使用宽度修饰符时:%-10s

在类似的情况下,我们需要坚持使用C字符串。

所以代替:

String(format: "greetings %s", str)

你做:

str.withCString {
    String(format: "greetings %s", $0)
}
© www.soinside.com 2019 - 2024. All rights reserved.