作者:Hello Bug.
轉(zhuǎn)自:blog.csdn.net/LLLLL__/article/details/89505619
C#中$符號是從C# 6.0版本開始推出的語法糖, 主要是對String.format()的簡化,當(dāng)然format也不是沒有價值,本文將介紹C#中$符及String.format的一些通用用法。
一:$符號的用法
$符號的作用相當(dāng)于對String.format()的簡化
例如我們需要輸出一段包含name與age的字符串:
using System;
class Program{static void Main(string[] args)
{
string name = "liu";
int age = 10; //夏雜麻煩的寫法
string str1 = "my name is " + name + ",my age is " + age + ","; //使用Format的寫法
string str2 = string.Format("my name is (0),my age is (1).", name, age);//使用 $語法糖的寫法
string str3 = $"my name is {name},my age is {age}.";
//控制臺的三個輸出都相同Console.Writeline(str1)
console.Writeline(str2): Console.Writeline(str3);
}
}
——由代碼顯然可見第一種寫法復(fù)雜麻煩,使用起來是不方便的
——使用Format格式化這種寫法,需要自己在字符串中寫占位符(標(biāo)記),在后面跟上參數(shù)。但是如果要格式化的參數(shù)比較多,寫起來就比較麻煩
——使用$語法糖的寫法可讀性高,代碼簡潔。
——注意$與第一個"之前不能有空格
因為C#是美國人發(fā)明的,所以用$符號,那么如果是中國人發(fā)明的C#或許這個語法糖就使用¥符號了吧.....
二:Format格式化字符串
//將數(shù)字轉(zhuǎn)換為四舍五入后的數(shù)字,位數(shù)不足則補(bǔ)0
Console.WriteLine(string.Format("{0:F}", 10.555));//10.56
Console.WriteLine(string.Format("{0:F1}", 10.555));//10.6
Console.WriteLine(string.Format("{0:F1}", 10));//10.0
//轉(zhuǎn)換為十六進(jìn)制的值
Console.WriteLine(string.Format("{0:X}", 10));//A
Console.WriteLine(string.Format("{0:x}", 10));//a
//轉(zhuǎn)換為當(dāng)前國家的貨幣符號,默認(rèn)保留2位小數(shù),會四舍五入
Console.WriteLine(string.Format("{0:C}", 10.135));//¥10.14
Console.WriteLine(string.Format("{0:C1}", 10.135));//¥10.1
//轉(zhuǎn)換為百分分顯示,默認(rèn)保留2位小數(shù),會四舍五入
Console.WriteLine(string.Format("{0:P}", 0.55));//55.00%
Console.WriteLine(string.Format("{0:P0}", 0.55));//55%
//轉(zhuǎn)換成以分號分隔的數(shù)字,3位一分割,默認(rèn)保留2位小數(shù)
Console.WriteLine(string.Format("{0:N}", 12345));//12,345.00
Console.WriteLine(string.Format("{0:N0}", 12345));//12,345
//格式化十進(jìn)制的數(shù),只支持十進(jìn)制的數(shù),不足則以零填充,超過精度則原數(shù)輸出
Console.WriteLine(string.Format("{0:D}", 155));//155
Console.WriteLine(string.Format("{0:D5}", 155));//00155
//零占位符,位數(shù)不夠則補(bǔ)0,會四舍五入
Console.WriteLine(string.Format("{0:00.00}", 23.195));//23.20
Console.WriteLine(string.Format("{0:000.00}", 23.195));//023.20
//#占位符,前后的0被舍去,會四舍五入
Console.WriteLine(string.Format("{0:##.##", 23.195));//23.2
Console.WriteLine(string.Format("{0:###.##}", 23.195));//23.2
//前后補(bǔ)空格
Console.WriteLine(string.Format("{0,-5}", 99.9));//99.99
Console.WriteLine(string.Format("{0,5}", 99.9));// 99.99
//日期和時間(C#控制臺和Unity中輸出的略有區(qū)別,下面是Unity中的輸出結(jié)果)
DateTime dt = new DateTime(2023, 8, 2, 13, 40, 53, 55);
Console.WriteLine(string.Format("{0:D}", dt));//2023年8月2日
Console.WriteLine(string.Format("{0:d}", dt));//2023/8/2
Console.WriteLine(string.Format("{0:F}", dt));//2023年8月2日 13:40:53
Console.WriteLine(string.Format("{0:f}", dt));//2023年8月2日 13:40
Console.WriteLine(string.Format("{0:G}", dt));//2023/8/2 13:40:53
Console.WriteLine(string.Format("{0:g}", dt));//2023/8/2 13:40
Console.WriteLine(string.Format("{0:T}", dt));//13:40:53
Console.WriteLine(string.Format("{0:t}", dt));//13:40
Console.WriteLine(string.Format("{0:m}", dt));//8月2日
Console.WriteLine(string.Format("{0:yyyyMMdd}", dt));//20230802
Console.WriteLine(string.Format("{0:yyyy-MM-dd}", dt));//2023-08-02
Console.WriteLine(string.Format("{0:yyyy/MM/dd HH:mm:ss.fff}", dt));//2023/08/0
該文章在 2024/1/23 12:54:28 編輯過