之前看到一段代码:
let str = "lazy" String(format:"%@ boy",arguments:[str])
没理解意思,后来在网上查了查这属于【字符串格式化】,随后我做了归总,有需要的可以了解。
数字字符串格式化
使用格式:%长度修饰符+说明符
例如:%ld 表示可以显示最大Int64位
//长度修饰符
h 表示short或者unsigned short
l 表示long或者unsigned long (ll,q 表示long long或者unsigned long long) Int
L 表示long double
z 表示可能为正
t 表示可能为负
//格式化说明符
%@ 字符串,或者OC对象实现了descriptionWithLocal,description的返回字符串
%d,%D 32位整型(最大2147483647)
%u,%U 32位无符号整型(最大4294967295)
%f 64位float和double
以下给点案例,更加直观感受变化,首先给出测试数据:
let d:Double = 12.3900 let i:Int = 36 let i2:Int = 350087
1、固定显示多少位
1.1、固定四位显示
String(format:"%4d",i)//" 36" (注意有两个空格) String(format:"%4d",i2)//"350087" (位数大于,则全部显示)
1.2、固定四位显示,不足补0
String(format:"%0.4d",i)//"0036" String(format:"%0.4d",i2)//"350087" (位数大于,则全部显示)
2、保留小数点后固定位数
2.1、保留两位
String(format:"%.2f",d)//"12.39"
1、单个变量格式化
1.1、字符串类型格式化
let str = "lazy" print(String(format:"%@ boy", arguments:[string]))//输出结果:lazy boy
1.2、Number类型格式化
let num = 10 print(String(format:"%4d 个",arguments:[num]))//输出结果:10个 print(String(format:"%04d 个",arguments:[num]))//输出结果:0010个
1.3、Float类型格式化
let float = 1.1111 print(String(format:"%fkg",arguments:[float]))//输出结果:1.111100kg print(String(format:"%.0fkg",arguments:[float]))//输出结果:1kg print(String(format:"%.2fkg",arguments:[float]))//输出结果:1.11kg print(String(format:"%.5fkg",arguments:[float]))//输出结果:1.11110kg
2、多个变量格式化
print(String(format:"%.1fkg, %03d 个, %@ boy, %@ girl",arguments:[float,num,string,string]))标签:格式化,String,format,print,let,arguments,字符串,Swift From: https://www.cnblogs.com/yaoyezhifan/p/17061670.html
//输出结果:1.1kg, 010 个, lazy boy, lazy girl