Ответ 1
Хорошо, я заменил% s на% @. Python - мой друг.
Спасибо!
Я хотел бы отформатировать строку с другой строкой, как это:
var str = "Hello, playground"
print (String(format: "greetings %s", str))
Это приводит к этому прекрасному результату:
привет 哰 ૧
Я попытался с% @, и это работает, но, поскольку я получаю строку формата с другого языка программирования, я хотел бы, если возможно, использовать тег% s. Есть ли способ?
Хорошо, я заменил% s на% @. Python - мой друг.
Спасибо!
Если формат из надежного внешнего источника, вы можете преобразовать его для замены вхождений %s
на %@
:
Итак, вместо:
String(format: "greetings %s", str)
Ты сделаешь:
String(format: "greetings %s".replacingOccurrences(of: "%s", with: "%@"), str)
Если формат сложный, простая замена не будет работать. Например:
%1$s
%%s
%-10s
В подобных случаях нам нужно придерживаться строки C.
Так что вместо:
String(format: "greetings %s", str)
Ты сделаешь:
str.withCString {
String(format: "greetings %s", $0)
}