成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

【C#冷知識系列】(三)關(guān)于字符串的冷知識-創(chuàng)新互聯(lián)

字符串忽略轉(zhuǎn)義符

string i = "sss\ssss";
string i = @"sss\ssss";

輸出:
sss"ssss
sss\ssss

模板字符串

string j = $"i is {i}"; 
//那么i的值就會(huì)被插入到字符串中。

這里不僅要知道可以這么用,更要知道為什么可以這么用:模板字符串或者叫插值字符串只是String.Format的一個(gè)語法糖,編譯器會(huì)這樣解析:

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出萬全免費(fèi)做網(wǎng)站回饋大家。
string s1 = "Hello";
string s2 = String.Format("Hello, {0}", s1);

注意:

  1. 如果想輸出花括號,就寫兩個(gè)大括號

string s1 = "Hello";
Console.WriteLine($"{{s1}}");  // 輸出 {s1}
Console.WriteLine($"{{{s1}}}"); // 輸出 {Hello}

String類操作字符串的返回值

返回值一定是一個(gè)新的字符串,因?yàn)镾tring類沒有提供任何可以改變其內(nèi)容的方法

// 這個(gè)知識告訴我們在C#中任何字符串的操作,要獲得返回值都需要使用新的字符串進(jìn)行接收的操作
string i = "123";
string j = i.Insert(0, "hello");

輸出:
i 123
j hello123

StringBuilder

我們都知道在進(jìn)行復(fù)雜的字符串操作的時(shí)候就要用到StringBuilder類,我們不太注意到的是:

  1. StringBuilder工作方式高效但是功能受限,它只能完成文本中的 替換 追加 刪除的工作。
    下面是StringBuilder提供的主要方法:
    【C#冷知識系列】(三)關(guān)于字符串的冷知識

  2. 我們應(yīng)該盡可能的在初始化的時(shí)候把容量設(shè)置為可能的大長度以保證不需要重新分配內(nèi)存,可以提高效率。下面是使用容量初始化StringBuilder的例子:

// 下面三個(gè)初始化都可以初始化一個(gè)StringBuilder
// 按照容量
StringBuilder sb = new StringBuilder(20);
// 使用字符串初始化
StringBuilder sb1 = new StringBuilder("Hello");
// 使用字符串初始化同時(shí)指定容量
StringBuilder sb2 = new StringBuilder("Hello", 20);

字符串格式化

  1. 格式化的語法

    在模板字符串中要用冒號分割變量與格式化字符串

var time = DateTime.Now;
Console.WriteLine($"{time:D}");   // 2018年12月5日
Console.WriteLine(time.ToString("D")); // 2018年12月5日
  1. 內(nèi)置的格式化

    格式字符串結(jié)果
    n2,440.012 有逗號分隔,有小數(shù)點(diǎn)
    e2.44e+003 指數(shù)表示法
    x9ad 十六進(jìn)制
    c$2,440.002 貨幣
    //       d: 6/15/2008
    //       D: Sunday, June 15, 2008
    //       f: Sunday, June 15, 2008 9:15 PM
    //       F: Sunday, June 15, 2008 9:15:07 PM
    //       g: 6/15/2008 9:15 PM
    //       G: 6/15/2008 9:15:07 PM
    //       m: June 15
    //       o: 2008-06-15T21:15:07.0000000
    //       R: Sun, 15 Jun 2008 21:15:07 GMT
    //       s: 2008-06-15T21:15:07
    //       t: 9:15 PM
    //       T: 9:15:07 PM
    //       u: 2008-06-15 21:15:07Z
    //       U: Monday, June 16, 2008 4:15:07 AM
    //       y: June, 2008
    //       
    //       'h:mm:ss.ff t': 9:15:07.00 P
    //       'd MMM yyyy': 15 Jun 2008
    //       'HH:mm:ss.f': 21:15:07.0
    //       'dd MMM HH:mm:ss': 15 Jun 21:15:07
    //       '\Mon\t\h\: M': Month: 6
    //       'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00

    關(guān)于內(nèi)置的格式化,如果大量經(jīng)常使用的話,推薦點(diǎn)擊這里下載微軟提供的工具來幫助格式化。

    1. 日期的格式化

    2. 數(shù)字的格式化(格式化字符串不區(qū)分大小寫)

  2. 自定義格式化

    除了使用內(nèi)置的格式化,我們還能自定義格式化字符串和格式化的結(jié)果,方法就是實(shí)現(xiàn)IFormattable接口,下面舉個(gè)例子

定義:

public class Student : IFormattable
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public override string ToString()
    {
        return FirstName + " " + LastName;
    }
    public string ToString(string format) => ToString(format, null); 
    public string ToString(string format, IFormatProvider formatProvider)
    {
        switch (format)
        {
            case "A":
                return ToString();
            case "F":
                return FirstName;
            case "L":
                return LastName;
            default:
                throw new FormatException($"invaild format string {format}");
        }
    }
}

使用:

Student stu = new Student { FirstName = "First", LastName = "Last" };
Console.WriteLine(stu.ToString("F"));   // 輸出 First

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享名稱:【C#冷知識系列】(三)關(guān)于字符串的冷知識-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article42/dighec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App開發(fā)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄關(guān)鍵詞優(yōu)化、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司