C#入門——字符串處理方法(格式化輸出)


        這年頭,寫點東西其實也挺不容易的,很多文章大家都只是為了做個筆記,而我這種,現在不太需要什么筆記,但是真正要專門寫點什么,卻又發現該寫的都讓人寫完了,於是還是從最基本的控制台應用程序開始來講一講字符串的基本處理方法。

        C#開發的應用程序絕大多數都在處理文字信息,其實說白了就是字符串的處理,不知道是不是因為講師大多從C++或者Java語言過來的緣故,很多開發者一用到字符串處理,就開始用加號:

string str = "Hello";
string result = str + " " + name;

        雖然這種寫法也不算錯,但是在C#語言(不要討論是ASP.NET平台提供還是C#語言提供)中,確實提供很多字符串處理方法,讓我們更能以有效地簡潔地方式處理字符串。

        我們首先來看一段代碼:

string name = Console.ReadLine();
Console.WriteLine("Hello {0}", name);

        輸入:Jerry

        輸出:Hello Jerry

        這種輸出我們稱之為格式化輸出,即:我們先定義整個字符串的格式,然后把參數像填空一樣,填寫完善,最后輸出。

        為了顯示更多比較靈活的應用,我們改用string.Format方法來進行字符串的格式化:

string name = Console.ReadLine();
string result = string.Format("Hello {0}", name);
Console.WriteLine(result);

        輸出的結果,沒有任何的變化,也就是說Format方法也能幫我們把事先定義好的字符串進行格式化。

        接下來我們看幾段代碼,來分析格式化輸出定義的具體含義:

        1.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {0}, {1}", name, welcome);
Console.WriteLine(result);

        輸入:Jerry

        輸出:Hello Jerry,welcome to C#

        2.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {1}", name, welcome);
Console.WriteLine(result);

        輸入:Jerry

        輸出:Hello welcome to C#

        3.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {0}", name, welcome);
Console.WriteLine(result);

        輸入:Jerry

        輸出:Hello Jerry

        4.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {1}", name);
Console.WriteLine(result);

        輸入:Jerry

        輸出:沒有輸出,報異常了

        如果你一個一個驗證過這些代碼,第四段代碼的確報錯了,那么總結下來,{n}應該算是定義格式化字符串的占位符,n表示后續參數的位置,n從0開始,如果0超出后續參數個數,則會報錯。

        既然{n}表示格式化,如果我有輸出花括弧符號"{}"的需求該怎么辦呢?再來看兩段代碼:

        1.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {{0}}, {1}", name, welcome);
Console.WriteLine(result);

        輸入:Jerry

        輸出:Hello {0},welcome to C#


        2.

string name = Console.ReadLine();
string welcome = "welcome to C#";
string result = string.Format("Hello {{{0}}}, {1}", name, welcome);
Console.WriteLine(result);

        輸入:Jerry

        輸出:Hello {Jerry},welcome to C#

        由此我們發現,在格式化方法中,{{}}會被解釋為一對{}。

        那么,這些內容究竟有哪些用途呢?如果沒有記錯,微信公眾平台的用戶授權接口地址給的是:

         https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

        我們可以將此字符串簡化為:

        https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={{0}}&response_type={1}&scope={2}&state={3}#wechat_redirect

        首次處理,我們可以格式化appid、response_type、scope、state得到一下結果

        https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx_your_id&redirect_uri={0}&response_type=code&scope=snsapi_userinfo&state=param_state#wechat_redirect

        接下來,我們在不同的頁面需要獲取授權的話,便可將該結果,進行再次format,以便得到授權之后跳轉到我們制定的不同頁面。

        當然,格式化還有很多不同的格式,以及用途,不再逐個講解,其他的格式化(比如格式化保留幾位小數,格式化時間等等)可以等你用到的時候再進行查詢。希望以此拋磚引玉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM