閱讀Stephens' C#教材第十四章筆記
Chapter 14 Working with String.
String是C#中一個重要的類別,在操作字串類型的資料上,此類別提供許多有用的方法,例如:EndsWith方法會判斷字串結尾若符合比對字串,會傳
回Ture值。
本書列出一些最常用的方法,包含:Contains, EndsWith, IndexOf, IndexOfAny, Insert, LastIndexOf, LastIndexOfAny, PadLeft, PadRight,
Remove, Replace, Split, StartWith, Substring, ToLower, ToUpper, Trim, TrimEnd, TrimStart等,詳細內容可參考微軟網站
Length是String類別中很有用的屬性,能夠將變數中的字元數目傳回。
String類別兩個有用的靜態(Static)方法:Format及Join。
靜態(Static)方法是由類別本身提供的方法,不需要經過宣告、實體化等步驟就可以直接在String類別中使用。
Join方法會在16章介紹
Format 參數由零或多段文字組成,其中混合零或多個索引的預留位置 (稱為格式化項目),這些文字會對應於這個方法的參數清單中的物件。格式化處理序會將每一個格式項目取代為對應物件值的字串表示。
格式項目的語法如下:
{index[,length][:formatString]}
方括號中的項目是選擇性的。
可參考微軟網站說明
例如以下的程式:
static void Main(string[] args)
{
// Formatting fields.
string itemName = "Fiendishly Difficult Puzzles";
decimal quantity = 2M;
decimal price_each = 9.99M;
Console.WriteLine(
string.Format("You just bought {1} {0} at {2:C} each.",
itemName, quantity, price_each));
Console.WriteLine('\n');
Console.WriteLine(
string.Format("{0,-20}{1,5}{2,10}{3,10}",
"Item", "Qty", "Each", "Total")
);
Console.WriteLine(
string.Format("{0,-20}{1,5}{2,10:C}{3,10:C}",
itemName1, quantity1, priceEach1, quantity1 * priceEach1)
);
Console.WriteLine(
string.Format("{0,-20}{1,5}{2,10:C}{3,10:C}",
itemName2, quantity2, priceEach2, quantity2 * priceEach2)
);
Console.WriteLine(
string.Format("{0,-20}{1,5}{2,10:C}{3,10:C}",
itemName3, quantity3, priceEach3, quantity3 * priceEach3)
);
Console.WriteLine('\n');
}
執行(Ctrl+F5)的結果如下圖:
還介紹對於數字內容的Format功能,可以在ToString中加入特定字元,讓結果出現想要的格式化的結果,特定的字元有C, D, E, F, G, N, P, R, X等,以C為例:
// ToString.
decimal cost = 123.45M;
Console.WriteLine(cost.ToString("C"));
得到 NT$123.45
可參考微軟網站說明
也可以自行定義想要的格式化結果,主要透過一些特定字元與符號的組合( 可參考微軟網站說明),例如:
// Sections.
value = 12345.678;
Console.WriteLine(
string.Format("{0:$#,##0.00;($#,##0.00);-- zero --}", value)
);
value = -12345.678;
Console.WriteLine(
string.Format("{0:$#,##0.00;($#,##0.00);-- zero --}", value)
);
value = 0;
Console.WriteLine(
string.Format("{0:$#,##0.00;($#,##0.00);-- zero --}", value)
);
執行的結果如下圖:
對於時間(Data 及 Time)的內容Format方法也同樣有標準與自訂的格式化效果,資料請自行參閱微軟網站(標準、自訂)
本書的FormattingExamples程式示範了使用這些字元的格式化效果,但是放在WindowsForm專案中看不出效果,以下是複製到主控台應用程式的專案,僅供參考。
Clock程式示範了在程式中顯示時間Format效果
TRY IT中作者示範如何寫出以下的程式