aardio 文档

格式化字符串

请参考:数据类型 - 字符串

一. 格式化函数

string.format 用来格式化字符串(按指定的规则连接字符串或其他变量并返回新的字符串) 。使用方法与 C 语言的 printf 函数类似( 实际上很多编程语言中都有类似的格式化函数 ) 。

result = string.format(fm,...);

第一个字符串参数 @fm 指定输出的格式,每个 % 符号后面是一个格式化表达式,每个格式化表达式按顺序对应后面的参数。

所以用了 n 个格式化表达式,就必须在后面添加 n 个参数。

下面是一个简单的例子:

var int = 123;
var str = "字符串"

//下面的 %s 对应参数 str, %i 对应参数 int
var result = string.format("这是字符串:'%s' 这是数字值 %i",str,int);

//%05i表示格式化为至少五位的数字,不足在前面补 0
var str = string.format("%05i",int); 

二. 格式化语法

格式化表达式:

%[零个或多个标志][最小字段宽度][.精度]格式化代码

注意: 上面的方括号 [] 表示可选部分。

格式化代码 #

格式化标志 #

示例:

字段宽度 #

字段宽度是一个十进制整数,用于指定将出现在结果中的最小字符数。如果值的字符数少于字段宽度,就对它进行填充以增加长度。

精度 #

精度以一个句点开头,后面跟一个可选的十进制数。如果未给出整数,精度的缺省值为零。

对于格式化代码为 d,i,u,o,x 或 X 的转换,精度字段指定将出现在结果中的最小的数字个数并覆盖零标志。如果转换后的值的位数小于宽度,就在它的前面插入零。如果值为零且精度也为零,则转换结果就不会产生数字。

对于格式化代码 e,E 或 f 类型的转换,精度决定将出现在小数点之后的数字位数。

对于格式化代码 g 和 G 的转换,它指定将出现在结果中的最大有效位数。

格式化代码为 s 的转换,精度指定将被转换的最多的字符数。

格式语法示例

格式代码 A ABC ABCDEFGH
%s A ABC ABCDEFGH
%5s ####A ##ABC ABCDEFGH
%.5s A ABC ABCDE
%5.5s ####A ##ABC ABCDE
%-5s A#### ABC## ABCDEFGH
格式代码 1 -12 12345 123456789
%d 1 -12 12345 123456789
%6d #####1 ###-12 #12345 123456789
%.4d 0001 -0012 12345 123456789
%6.4d ##0001 #-0012 #12345 123456789
%-4d 1#### -12# 12345 123456789
%04d 0001 -012 12345 123456789
%+d +1 -12 +12345 +123456789
格式代码 1 .01 .00012345 12345.6789
%f 1.000000 0.010000 0.000123 12345.678900
%10.2f ######1.00 #####0.01 ######0.00 ##12345.67
%e 1.000000e+00 1.000000e-02 1.234500e-04 1.234568e+04
%.4e 1.0000e+00 1.0000e-02 1.2345e-04 1.2346e+04
%g 1 0.01 0.00012345 12345.7
格式代码 6.023e23
%f 60229999999999975882752.000000
%10.2f 60229999999999975882752.00
%e 6.023000e+23
%.4e 6.0230e+23
%g 6.023e+23

用上面的格式化函数可以轻松实现数字的进制转换( 请参考:数值与进制 )

import console; 

//数字转换为二进制字符串
str = string.format("2#%b",23 );
console.log(str)

//二进制字符串转换为数字
n = tonumber(str,2)

//数字转换为八进制字符串
str = string.format("8#%o",23 );
console.log(str)

//八进制字符串转换为数字
n = tonumber(str,8)

//数字转换为十六进制字符串
str = string.format("%#x",23 );
console.log(str)

//十六进制字符串转换为数字
n = tonumber(str,16)

console.pause();

Markdown 格式