[讀書筆記 ]Stephens' C# Programming with Visual Studio 2010 24-Hour Trainer 第十四章

  • 954
  • 0

閱讀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中作者示範如何寫出以下的程式