字符串格式化

在 Lua 中,字符串格式化主要通过 string.format() 函数实现。这个函数可以创建格式化的字符串,类似于其他编程语言中的格式化功能。

1. string.format() 函数

语法:

formatted_string = string.format(format_string, ...)
  • format_string 是包含格式说明符的字符串。
  • ... 是要格式化的变量,可以是多个参数。

返回值: 返回格式化后的字符串。

2. 格式说明符

格式说明符以 % 开头,后面跟随特定的字符,指示如何格式化对应的参数。常见的格式说明符包括:

  • %s:格式化为字符串
  • %d:格式化为整数
  • %f:格式化为浮点数
  • %x:格式化为十六进制数
  • %o:格式化为八进制数
  • %c:格式化为字符(根据 ASCII 码)

3. 示例代码

以下是一些使用 string.format() 的示例:

-- 格式化字符串
local name = "Alice"
local age = 30
local formatted_string = string.format("名字: %s, 年龄: %d", name, age)
print(formatted_string)  -- 输出: 名字: Alice, 年龄: 30

-- 格式化浮点数
local pi = 3.14159
local formatted_pi = string.format("圆周率: %.2f", pi)  -- 保留两位小数
print(formatted_pi)  -- 输出: 圆周率: 3.14

-- 格式化十六进制
local num = 255
local formatted_hex = string.format("十六进制: %x", num)
print(formatted_hex)  -- 输出: 十六进制: ff

-- 格式化字符
local ascii_value = 65  -- ASCII 值对应字符 'A'
local formatted_char = string.format("字符: %c", ascii_value)
print(formatted_char)  -- 输出: 字符: A

-- 格式化布尔值
local isTrue = true
local formatted_bool = string.format("布尔值: %s", isTrue)
print(formatted_bool)  -- 输出: 布尔值: true

4. 格式化选项

你可以在格式说明符中使用额外的选项来控制格式化的行为:

  • 宽度:指定输出的最小宽度。例如 %5d 表示一个整数至少占用 5 个字符宽。
  • 精度:对浮点数和字符串进行精度控制。例如 %.2f 表示浮点数保留两位小数,%.5s 表示字符串最多显示 5 个字符。
  • 对齐:默认情况下,格式化结果是右对齐的。如果希望左对齐,可以在宽度前加上 - 符号。例如 %-5d 表示左对齐,宽度为 5 个字符。

示例:

-- 宽度和对齐
local value = 42
local formatted_value = string.format("|%5d|", value)  -- 右对齐
print(formatted_value)  -- 输出: |   42|

formatted_value = string.format("|%-5d|", value)  -- 左对齐
print(formatted_value)  -- 输出: |42   |

5. 总结

string.format() 是一个强大的字符串格式化工具,可以让你轻松地生成格式化的字符串。通过使用格式说明符和选项,你可以根据需要控制输出的样式。在实际编程中,掌握字符串格式化可以使代码更加清晰和易于维护。

作者:xiazm  创建时间:2024-10-27 22:12
最后编辑:xiazm  更新时间:2024-10-27 22:37