String.Format使用方法[通俗易懂]

String.Format使用方法[通俗易懂]1、作为參数多个參数intm[]=newint{a,b,c,d};string.format("{0}{1}{2}",m);一个參数privateconststr

大家好,又见面了,我是你们的朋友全栈君。

1、作为參数

  名称 说明
  Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
  Format(String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中对应 Object 实例的值的文本等效项。
  Format(IFormatProvider, String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中对应 Object 实例的值的文本等效项。指定的參数提供区域性特定的格式设置信息。
  Format(String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。
  Format(String, Object, Object, Object) 将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

多个參数

int m[]=new int{a,b,c,d};

string.format(“{0}{1}{2}”,m);

一个參数

private const string _extraClause = ” AND C_INTERNSHIPORG_INTERNSHIPID = {0}”;

//将MyCrypt.Decrypt(Request[“id”])作为_extraClause 的參数
if (Request[“id”] != null && Request[“id”] != string.Empty)
{
    mExtraMessage = string.Format(_extraClause, MyCrypt.Decrypt(Request[“id”]));
}

2、格式化数值结果表

字符

说明

演示样例

输出

C 货币 string.Format(“{0:C3}”, 2) $2.000
D 十进制 string.Format(“{0:D3}”, 2) 002
E 科学计数法 1.20E+001 1.20E+001
G 常规 string.Format(“{0:G}”, 2) 2
N 用分号隔开的数字 string.Format(“{0:N}”, 250000) 250,000.00
X 十六进制 string.Format(“{0:X000}”, 12) C
    string.Format(“{0:000.000}”, 12.2) 012.200

 

string.format用来格式化字符串(按指定的规则连接字符串或输出其它变量并返回新的字符串) 。
string.format(fm,…);
第一个參数用fm表示输出的格式,每一个%符号后面是一个格式化表达式,每一个格式化表达式按顺序相应后面的參数。
所以用了N个格式化表达式,就必须在后面加入�N个參数。

以下是一个简单的样例:

int = 
123;
str = “字符串”

–以下的%s相应參数str, %i相应參数int
str = string.format(“这是字符串:’%s‘ 这是数字值 %i,str,int);

win.messageBox(str);

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

格式化表达式:%[零个或多个标志][最小字段宽度][精度][改动符]格式码

注意:[]方括号表示可选參数

1、格式码

代码 c
參数 数字值(number) 
含义 參数被裁剪为8位字节码并作为字符进行打印。

代码 i,d
參数 数字值(number) 
含义 參数作为一个十进制整数打印。假设给出了精度并且值的位数小于精度位数,前面就用0填充。

代码 u,o,x,X
參数 数字值(number) 
含义 參数作为一个无符号数字值打印,u使用十进制,o使用八进制,x或X使用十六进制,两者的差别是x约定使用abcdef,而X约定使用ABCDEF。

代码 e,E
參数 数字值(number) 
含义 參数依据指数形式打印。比如,6.023000e23是使用代码e,6.023000E23是使用代码E。小数点后面的位数由精度字段决定,缺省值是6。

代码 f
參数 数字值(number) 
含义 參数依照的常规浮点格式打印。精度字段决定小数点后面的位数,缺省值是6。

代码 g,G
參数 数字值(number) 
含义 參数以%f或%e(如G则%E)的格式打印,取决于它的值。假设指数大于等于-4但小于精度字段就使用%f格式,否则使用指数格式。

代码 s
參数 字符串值(string) 
含义 打印一个字符串。

代码 q 
參数 (无)
含义 打印一个字符串,并将字符串置于一对引號中,假设字符串中包括引號换行等自己主动加入�转义符。假设要读取一个字符串传为脚本代码。为避免用户恶意注入引號等特殊字符,能够使用%q进行格式化。

代码 %
參数 (无)
含义 取消%转义打印一个%字符,即用%%表示本来的%。

2、 标志

标志 –
含义 值在字段中做对齐,缺省情况下是右对齐。

标志 0
含义 当数值为右对齐时,缺省情况下是使用空格填充值左边未使用的列。这个标志表示用零填充,它可用于d,i,u,o,x,X,e,E,f,g和G代码。
使用d,i,u,o,x和X代码时,假设给出了精度字段,零标志就被忽略。假设格式代码中出现了负号,零标志也没有效果。

标志 +
含义 当用于一个格式化某个有符号值代码时,假设值非负,正号标志就会给它加上一个正号。假设该值为负,就像往常一样显示一个负号。在
缺省情况下,正号并不会显示。

标志 空格
含义 仅仅用于转换有符号值的代码。当值非负时,这个标志把一个空格加入�到它開始的位置。注意这个标志和正号标志是互斥的,假设两个
同一时候给出,空格标志便被忽略。

标志 #
含义 选择某些代码的还有一种转换形式:

用于… #标志…
o 保证产生的值以一个零开头
x,X 在非零值前面加0x前缀(%X则为0X)
e,E,f 确保结果始终包括一个小数点,即使它后面没有数字
g,G 和上面的e,E和f代码同样。另外,缀尾的0并不从小数中去除

3、 字段宽度

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

4、 精度

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

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

对于e,E和f类型的转换,精度决定将出如今小数点之后的数字位数。

对于g和G类型的转换,它指定将出如今结果中的最大有效位数。

当使用s类型的转换时,精度指定将被转换的最多的字符数。

假设用于表示字段宽度和/或精度的十进制整数由一个星号取代,那么printf的下一个參数(必须是个整数)就提供宽度和(或)精度。因此,
这些值能够通过计算获得而不必预先指定。

5、演示样例

格式代码 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.2d ######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.2e 60229999999999975882752.00 
%e 6.023000e+23 
%.4e 6.0230e+23 
%g 6.023e+23

 

用上面的格式化函数能够轻松实现数字的进制转换

–数字转换为二进制字符串
str = string.format(“%b”,23 );

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

–数字转换为八进制字符串
str = string.format(“%o”,23 );

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

–数字转换为十六进制字符串
str = string.format(“%x”,23 );

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

 

四、格式化时间
模拟精灵v7.10 格式化时间的函数有 string.time;string.ftime;os.data;os.time 等函数。
os.time 是从table生成数字时间值 string.time是从字符串生成数字时间值。
os.data 与string.ftime功能同样从时间值反过来生成字符串或时间。

这里我们介绍string.time函数、string.ftime函数,以下是使用演示样例:

–从字符串创建时间值
t = string.time(“2006/6/6 0:0:0″,”%Y/%m/%d %H:%M:%S”)

–从时间值创建字符串
str = string.ftime(“%Y/%m/%d %H:%M:%S”,t )

格式化语法(在非常多编程语言中都适用的语法)

%a – 当前区域星期几的简写
%A – 当前区域星期几的全称
%b – 当前区域月份的简写
%B – 当前区域月份的全称
%c – 当前区域首选的日期时间表达
%C – 世纪值(年份除以 100 后取整,范围从 00 到 99)
%d – 月份中的第几天,十进制数字(范围从 01 到 31)
%D – 和 %m/%d/%y 一样
%e – 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ‘ 1’ 到 ’31’)
%g – 和 %G 一样,可是没有世纪
%G – 4 位数的年份,符合 ISO 星期数(參见 %V)。和 %V 的格式和值一样,仅仅除了假设 ISO 星期数属于前一年或者后一年,则使用那一年。
%h – 和 %b 一样
%H – 24 小时制的十进制小时数(范围从 00 到 23)
%I – 12 小时制的十进制小时数(范围从 00 到 12)
%j – 年份中的第几天,十进制数(范围从 001 到 366)
%m – 十进制月份(范围从 01 到 12)
%M – 十进制分钟数
%n – 换行符
%p – 依据给定的时间值为 `am’ 或 `pm’,或者当前区域设置中的对应字符串
%r – 用 a.m. 和 p.m. 符号的时间
%R – 24 小时符号的时间
%S – 十进制秒数
%t – 制表符
%T – 当前时间,和 %H:%M:%S 一样
%u – 星期几的十进制数表达 [1,7],1 表示星期一
%U – 本年的第几周,从第一周的第一个星期天作为第一天開始
%V – 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳对应周数的年份组成。)
%W – 本年的第几周数,从第一周的第一个星期一作为第一天開始
%w – 星期中的第几天,星期天为 0
%x – 当前区域首选的时间表示法,不包含时间
%X – 当前区域首选的时间表示法,不包含日期
%y – 没有世纪数的十进制年份(范围从 00 到 99)
%Y – 包含世纪数的十进制年份
%Z – 时区名或缩写
%% – 文字上的 `%’ 字符

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155744.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 上午11:46
下一篇 2022年7月3日 下午12:00


相关推荐

  • Visual Studio 快捷键更改和设置

    Visual Studio 快捷键更改和设置VisualStudio 快捷键更改和设置 VisualStudio 是程序员最为经常利用的利器 一把利器没有快捷键的支持将会少了很多乐趣和便捷 Qt 的快捷键也是非常灵活多变 一般来说 VisualStudio 中的有些快捷键将会让你大开眼界 举个简单例子 大家都知道 Ctrl C 是复制功能 操作便是选中按键复制粘贴 但是你却忽略了 当光标在某一行代码上 你按 ctrl C 键 将会复制一行 无需

    2026年2月8日
    2
  • gff文件_GFF文件格式简介

    gff文件_GFF文件格式简介鉴于代码的排版问题 建议在电脑上阅读本文 组装得到基因组的序列只是开展基因组研究的第一步 基因的结构是基因组后续功能研究的基石 在 NCBI 中 除了提供基因组序列外 还提供了基因结构的信息 采用的就是 GFF 格式 human 示例如下 GFF 全称 GenericFeatu 描述了基因组上各种特征的区间信息 包括染色体 基因 转录本等 GFF 文件本质上是一个 t 分隔的 共 9 列的纯文本文件

    2026年3月26日
    2
  • IntelliJ IDEA调整字体大小

    IntelliJ IDEA调整字体大小IntelliJIDEA 开发工具默认的代码字体大小是 12 看起来比较小 不是很舒服 下面介绍是解决 IntelliJIDEA 开发工具代码字体太小的解决方法 工具 原料 IntelliJIDEA 方法 步骤 首先双击桌面图标 打开 IntelliJIDEA 开发工具 选择单击菜单栏 Flie Settings 设置弹出 Settings 对话框

    2026年3月19日
    2
  • 如何绘制qq图_python画图

    如何绘制qq图_python画图Q-Q图主要可以用来回答这些问题:两组数据是否来自同一分布PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KSstatistic和P值从而实现判断。两组数据的尺度范围是否一致两组数据是否有类似的分布形状前面两个问题可以用样本数据集在Q-Q图上的点与参考线的距离判断;而后者则是用点的拟合线的斜率判断。用Q-Q图来分析分布的好处都有啥?(谁说对了…

    2022年8月10日
    13
  • Linux挂载磁盘(扩展根目录)

    Linux挂载磁盘(扩展根目录)1.df命令查看自己的/目录属于哪个逻辑卷(我们要做的是对逻辑卷扩展)[root@redhat6-3~]#df-h查看未挂载的磁盘:[root@redhat6-3~]#lsblk2.新加一块硬盘,我的是vdb先创建物理卷[root@redhat6-3~]#fdisk/dev/vdb在分别输入n、p、1、2048、1048575999、w如果报错,执行(类似刷新磁盘变化,如果磁盘无法格式化和无法创建物理卷):partprobe再执行:fdisk/dev/vdb

    2022年6月19日
    48
  • 被卖半年后的Hutool:还适合继续使用吗?

    被卖半年后的Hutool:还适合继续使用吗?

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号