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


相关推荐

  • STM32f1之简单控制继电器模块(附源码)

    STM32f1之简单控制继电器模块(附源码)目录前言一 继电器的使用 重要 二 写个代码检验三 源码百度云前言第一个粉丝会是谁呢 期待 ing 相信很多志同道合的小伙伴们已经找到了学习 STM32 的好途经 灵光一闪刷到我的博客 了 接下来的时光里 我会讲到一些我对一些模块的使用 同时附上源码还有我的心得 没错 今天我讲的就是继电器的使用 一 继电器的使用 重要 其实继电器简单来说就是一个开关 VCC 表示电源正极 GND 表示电源负极 IN 表示信号输入脚 COM 表示公共端 NC normalo

    2026年2月21日
    2
  • git的版本回退教程(带你一步一步操作)

    git的版本回退教程(带你一步一步操作)nbsp nbsp 在之前的文章中我们已经学会了如何使用 git 提交文件 下载更新文件 那么在 git 中如何进行版本回退呐 nbsp 首先 在本地建立一个 git 项目 并且与远程服务端 github 上的项目进行关联 如果这一步骤有问题的童靴 请参考我的上一篇文章 害羞 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 第一次建立 git 项目 提交到远程分支 并且记录为第一个版本 nbsp nbsp

    2026年3月18日
    1
  • 腾讯“元宝派”支持接入OpenClaw

    腾讯“元宝派”支持接入OpenClaw

    2026年3月17日
    1
  • django 聚合函数_聚合函数和非聚合函数

    django 聚合函数_聚合函数和非聚合函数前言orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum、Avg、Count、Max、Min,接下来我们逐个介绍聚合函数所有的聚合函数都是放在django.db.models

    2022年7月29日
    6
  • Gradle build.gradle配置

    Gradle build.gradle配置Gradlebuild gradle 配置每个构建脚本 build gradle 都有一个默认的 Project 的实例 脚本中所有的操作都在 project 实例的作用域 1 项目信息项目信息指项目的坐标 groupversion 为 project 的方法 项目名称 name 在 settings gradle 中 group com kepus version 1

    2026年3月17日
    2
  • gridview控件功能

    gridview控件功能nbsp nbsp GridView 控件的功能如下 绑定到任何平面结构或多层次结构 仅绑定第一层 的数据控件内置排序功能选择数据纪录编辑和删除数据纪录支持多个关键字段支持多个字段来创建超链接根据主题 Theme 和风格 Style 进行可视化的调整根据不同的 移动 设备来调整显示结果指定背景图片 nbsp

    2026年3月16日
    6

发表回复

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

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