【超级帮助】Format 函数(AutoHotkey v2 )

概述

根据格式字符串对可变数量的输入值进行格式化。

语法
格式化字符串 := Format(格式字符串, 值...)

返回值
类型:字符串
返回根据指定规则格式化后的字符串。


参数说明

1. 格式字符串 (FormatStr)

  • 类型:字符串
  • 结构:由普通文本和占位符组成,占位符格式为 {索引:格式}
    • 索引:整数,表示使用的输入值位置(1为第一个值)。
      • 省略索引时自动按顺序使用下一个值(即使该值已被使用过)。
      • 示例:"{2:i} {:i}" 使用第二个和第三个值。
    • 格式:可选,包含标志、宽度、精度等(详见下文)。
    • 特殊字符
      • 使用 } 和 { 表示原义大括号。
      • 无效占位符会直接输出,大括号内不可包含空格(除非作为标志)。

2. 输入值 (Values)

  • 类型:字符串、整数、浮点数
  • 说明
    • 每个值作为独立参数传递,第一个值索引为1。
    • 传递数组时需展开:Format("{2:x}{1:02x}", 数组*)

格式指定器详解

格式指定器按顺序包含以下部分(无空格):
[标志][宽度][.精度][大小写][类型]

1. 标志 (Flags)

标志 说明
- 左对齐(默认右对齐),用空格填充右侧。示例:{:-10} → 1
+ 强制显示正负号。示例:{:+d} → +1
0 用前导0填充宽度(与-同时存在时无效)。示例:{:010} → 0000000001
空格 正数前加空格(与+同时存在时无效)。示例:{: 05d} →  0001
# o/x/X添加前缀0/0x/0X;强制e/E/f显示小数点;保留g/G末尾零。

2. 宽度 (Width)

  • 十进制整数,控制最小输出宽度(字符数),默认用空格填充。

3. 精度 (.Precision)

  • 前缀需加小数点,影响不同类型的输出:
    类型 作用 默认值
    f/e/E 小数位数 6
    g/G 最大有效数字数 6
    s 最大字符数(超限截断) 无限制
    整数类型 类似0前缀的宽度(默认宽度为1) 1

4. 大小写转换 (ULT)

  • 仅对 s 类型有效:
    • U:全大写
    • L:全小写
    • T:首字母大写
    • 示例:{:U} → HELLO

5. 类型 (Type)

类型 输入类型 说明
d/i 整数 有符号十进制整数。示例:{:d} → 1
u 整数 无符号十进制整数
x/X 整数 十六进制(小写/大写)。示例:{:X} → FF
o 整数 八进制。示例:{:o} → 377
f 浮点数 固定小数。示例:{:.2f} → 1.00
e/E 浮点数 科学计数法。示例:{:e} → 2.55e+02
g/G 浮点数 自动选择 f 或 e(紧凑格式)。示例:{:g} → 3.14159
a/A 浮点数 十六进制浮点。示例:{:a} → 0x1.fep+7
p 整数 内存地址(十六进制)。示例:{:p} → 000000FF
s 字符串 直接输出(数值自动转字符串)
c 字符编码 单字符输出。示例:{:c} → t

备注

  1. 不支持 printf 的大小指定符,所有数值均为64位。
  2. 相关函数:FormatTime

示例

; 基本替换
result := Format("{2}, {1}!", "World", "Hello")  ; 返回 "Hello, World!"

; 对齐与填充
result := Format("|{:-10}|`n|{:10}|", "Left", "Right")  ; 左对齐与右对齐

; 进制转换
result := Format("{1:#x} {2:X} 0x{3:x}", 3735928559, 195948557, 0)  ; 0xdeadbeef BADCAFE 0x0

; 浮点格式化
result := Format("{1:0.3f} {1:.10f}", 4*ATan(1))  ; 3.142 3.1415926536
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
函数

有用的 AutoHotkey v2 脚本和函数集合

2025-2-10 9:08:11

其他函数教程案例

SendMessage操作ListView常用函数示例

2022-7-26 11:31:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索