備忘(四)字串格式化

2021-05-17 12:23:08 字數 4578 閱讀 3709

string類提供了format方法進行格式化的操作,針對這個方法我們進行詳細的說明。format方法提供了很多過載的版本,其中最為常用的有以下兩種方式:

public static string format(iformatprovider provider, string format, params object ars)

。public static string format(string format, params object ars)

。第一種形式比第二種形式多了乙個iformatprovider介面引數,它表示格式化字串的區域形式,由於國家區域的不同字串的顯示方式也有所不同,因此我們可以根據不同的區域設定不同的格式化方式。例如美國和中國在表示貨幣的形式就是不同的。如果省略了這個引數那麼系統會根據當前作業系統的區域來顯示。那麼我們該如何表示某個區域呢?我們看一下下面的例項。

知識點

øcultureinfo

類在system.globalization

命名空間下,該類的建構函式中的引數新增的是各個區域國家的名稱。常用的區域名稱如下:

名稱

含義

zh-cn 中國

en-us 美國

zh-hk

中國香港

en-gb 英國

ja-jp 日本

ø方法中的第二個引數string format,它表示格式化的規範,它的形式如下:

。其中arg

表示佔位符,從零開始。【

,n】表示以空格填補格式化區域的寬度,

n可以是正值也可以是負值。如果為正值表示格式化的值靠右對齊,負值則靠左對齊,可以省略。

[: formatstring]

表示格式化字串的形式,本例中表示貨幣形式。格式化字串的形式大體可以分為三類:格式化數值、格式化日期時間和自定義數字格式化形式。如下表。

格式化數值

格式規範

名稱

說明

舉例

c

或c貨幣

將數值轉換為貨幣的形式並能夠指定所需小數的位數

string str = string.format("", 125.23569) d

或d十進位制

格式化整數,指示產生字串中,其所需的最少位數。如果有必要,數值以零不起左邊規範其指定的位數。

string str = string.format("", 12)

。注意:要格式化的目標必須是整數。e或e

科學計數

將數值轉換為「-d.ddd...e+ddd

」的形式,其中每個d都是0-9的數字,其位數預設為6位。

string str = string.format("", 12563.45678) f

或f固定點

將數值轉換為」-d.ddd」的形式的字串。其中d表示0-9的數字。可以規範精確到小數點的位數。

string str = string.format("", 12563.45678) n

或n編號

數字被轉換為財務書寫形式:「d,ddd,ddd.dd」,千分位符號在小數點左邊插入每三位數一組的各個組之間。可以規範小數點的位數。

string str = string.format("", 12563789.45678) p

或p百分比

格式化數值以百分比的形式輸出,可以指定小數點的位數。

string str = string.format("", 0.125696) x

或x十六進製制

將十進位制整數轉換為十六進製制整數。

string str = string.format("", 150)

上面表中列出了預設格式的規範,你也可以選擇自定義所需的格式。c#提供了一種自定義格式的的字元利用這些字元你可以根據自己的需求,定義所需的格式模板。

自定義數字格式

格式字元

說 明

0

利用0將格式化的字元填滿#

代表數字

指定小數點的位置

,千位數分隔符%

百分比符號

e0e-0e+0

科學計數符號

;分段區隔符號

知識點

關於「;」分段區符號的使用:它能夠將數值進行分段,分別指定整數、負數以及0的格式。形式如下:format(」」,數值)。其中分段1用於指定格式化數值為正數的時候的形式,分段2用於指定格式化負數的時候的形式,分段3表示格式化數值為0的時候所使用的形式。

日期時間格式化

另外一種經常被格式化的資料就是日期時間資料,因為國家不同,經常會有不同的表示方式,c#專門定義了關於日期時間的字元格式規範的形式。

格式規範

說明

舉例

結果

d

簡短日期模式

string.format("",datetime.now)

2009-5-24 d

完整日期模式

string.format("",datetime.now)

2009

年5月24日 t

簡短時間模式

string.format("",datetime.now)

17:34 t

完整時間模式

string.format("",datetime.now)

17:34:21 f

完整可排序日期/時間模式(簡短時間)

string.format("",datetime.now)

2009

年5月24日

17:35 f

完整可排序日期/時間模式(完整時間)

string.format("",datetime.now)

2009

年5月24日

17:35:11 g

一般可排序日期/時間模式(簡短時間)

string.format("",datetime.now)

2009-5-24

17:38 g

一般可排序日期/時間模式(完整時間)

string.format("",datetime.now)

2009-5-24

17:38:11 m

或m月日模式

string.format("",datetime.now) 5

月24日 r

或rrfc1123

模式string.format("",datetime.now)

sun,24 mary 2009 17:40:30

gmt s

可排序日期/時間模式;符合iso8601

string.format("",datetime.now)

2009-05-24

t17:38:11 u

通用可排序日期/時間模式

string.format("",datetime.now)

2009-05-24

17:38:11z u

通用可排序日期/時間模式

string.format("",datetime.now)

2009

年05月24日

17:35:11 y

或y年月模式

string.format("",datetime.now)

2009

年5月日期時間就如同數值格式化,除了這些預設的格式化規範,也可以選擇自定義格式方式。下面我們只介紹常用的格式化方式。

自定義的日期時間格式

格式規範

說明

舉例

結果

dd

介於1和31之間的數字來測算當前的日期25

dddd

顯示當前時間是星期幾

星期日hh

顯示小時,12小時制05

hh 顯示小時,24小時制 17

mm 分鐘

01 mm

月份 05

mmmm

完整的月份 五月

ss 秒

54 yy

不帶世紀的年份 09

yyyy

帶世紀的年份

2009

例項:string.format(」」,datetime.now);

3 1 2 字串格式化

類string.formatter 類formatter 有下面的公共訪問方法 format format string,args,kwargs format 是最基本的 api方法。它把引數 args 和kwargs 按格式字串 format string 進行格式化。這個函式只是呼叫 vform...

7 8 9字串格式化

格式化輸出語句,可以利用佔位符實現資料的輸出。常用的佔位符有字串 s 字元 c 整數 d 小數 f 等。方法名稱 描述public static string format string format,各種型別 args 根據指定結構進行文字格式化顯示 public class stringdemo...

python入門(四) 字串

0.字串的表示 字串可以用單引號 和雙引號 表示。若想在字串中表示單 雙引號,則在單 雙引號外面用雙 單引號括起來。故內部單 雙引號成為字元。1.字串的索引 字串的索引可以正序排列也可以倒序排列。正序從第乙個字元開始索引為0,正向遞增 倒敘從最後乙個字元開始索引為 1,反向遞減。2.字串的切片 返回...