String(format:) 是 Swift 中用于创建格式化字符串的构造器,它可以根据提供的格式说明符和对应的值来生成一个新的字符串。这个构造器的使用与 C 语言中的 printf 函数类似,可以以指定的方式展示数字、字符串、日期等数据。
基本语法
let formattedString = String(format: "格式化模板", 参数1, 参数2, ...)
格式化模板:是一个包含格式说明符的字符串,说明符决定了如何格式化和显示后面参数的值。
参数1, 参数2, …:这些是希望格式化的值,它们会根据格式化模板被插入到字符串中。
常见的格式说明符
在 String(format:) 中,可以使用多种格式说明符来控制输出的格式。以下是一些常见的说明符和它们的含义:
1、数字格式
%d 或 %i:格式化为 整数(十进制表示)
示例:String(format: “%d”, 42) 输出 “42”
%f:格式化为 浮点数(小数点后保留默认的 6 位数字)
示例:String(format: “%.2f”, 3.14159) 输出 “3.14”(保留两位小数)
%.nf:格式化浮点数并保留 n 位小数
示例:String(format: “%.3f”, 3.14159) 输出 “3.142”(保留三位小数)
%e 或 %E:以 科学计数法 格式化数字
示例:String(format: “%e”, 12345.6789) 输出 “1.234568e+04”
%g 或 %G:根据数值的大小自动选择合适的格式(普通数值或科学计数法)
示例:String(format: “%g”, 0.000123) 输出 “0.000123”
2、字符和字符串格式
%@:格式化为 字符串
示例:String(format: “%@”, “Hello”) 输出 “Hello”
%c:格式化为 单个字符
示例:String(format: “%c”, “A”) 输出 “A”
3、宽度和对齐
还可以指定宽度和对齐方式:
%5d:整数宽度为 5,若数字小于 5 位,则前面会填充空格
示例:String(format: “%5d”, 42) 输出 ” 42″
%-5d:整数宽度为 5,若数字小于 5 位,则后面会填充空格(左对齐)
示例:String(format: “%-5d”, 42) 输出 “42 “
%05d:整数宽度为 5,若数字小于 5 位,则用 0 填充
示例:String(format: “%05d”, 42) 输出 “00042”
4、百分比格式
%%:表示一个 字面量百分号(%),用于在字符串中插入一个百分号符号
示例:String(format: “Completion: %d%%”, 75) 输出 “Completion: 75%”
常见用法
1、格式化浮点数保留两位小数:
let price = 9.995
let formattedPrice = String(format: "%.2f", price) // "10.00"
2、格式化整数并填充零:
let score = 42
let formattedScore = String(format: "%05d", score) // "00042"
3、格式化字符串:
let name = "Alice"
let greeting = String(format: "Hello, %@", name) // "Hello, Alice"
4、格式化多个参数:
let name = "Alice"
let age = 25
let formattedString = String(format: "Name: %@, Age: %d", name, age)
// "Name: Alice, Age: 25"
5、科学计数法格式化数字:
let number = 12345.6789
let formattedNumber = String(format: "%e", number) // "1.234568e+04"
总结
String(format:) 是一个强大的格式化工具,它根据指定的格式化模板灵活地输出各种类型的值(整数、浮点数、字符串等)。常见的用法包括设置浮动小数的精度、控制数值的显示宽度、格式化日期等。