Vic*_*ler 4 string formatting ios swift
在某些语言中,例如C#,您可以通过以下方式创建字符串:
"String {0} formatted {1} "
Run Code Online (Sandbox Code Playgroud)
然后String.format通过传递值来格式化它.
上面的声明是好的,因为您在创建字符串时不必知道其参数的类型.
我试图在Swift中找到类似的方法,但我发现的东西类似于以下格式:
"String %d formatted %d"
Run Code Online (Sandbox Code Playgroud)
这需要您使用格式化字符串String(format: , parameters).这不好,因为在声明字符串时你还必须知道参数类型.
在Swift中是否有类似的方法,我不必知道参数类型?
使用这个:
let printfOutput = String(format:"%@ %2.2d", "string", 2)
Run Code Online (Sandbox Code Playgroud)
它与printf或Obj-C格式相同.
您也可以这样混合它:
let parm = "string"
let printfOutput = String(format:"\(parm) %2.2d", 2)
Run Code Online (Sandbox Code Playgroud)
编辑:感谢MartinR(他知道这一切;-)
混合字符串插值和格式化时要小心.
String(format:"\(parm) %2.2d", 2)如果parm包含百分比字符,则会崩溃.在(Objective-)C中,如果格式字符串不是字符串文字,则clang编译器会发出警告.
这为黑客提供了一些空间:
let format = "%@"
let data = "String"
let s = String(format: "\(format)", data) // prints "String"
Run Code Online (Sandbox Code Playgroud)
与在编译时解析格式字符串的Obj-C相反,Swift不会这样做,只是在运行时解释它.
| 归档时间: |
|
| 查看次数: |
2553 次 |
| 最近记录: |