巧用對象的Length屬性來裁剪對象內容

來源:互聯網
上載者:User
    在使用JScript的數組的時候,我發現一個挺好玩的特性,就是它的內建對象Array的length是可以寫的。很奇怪吧?但是很好玩哦。那麼如果我改變其length會有什麼效果呢?

    當我們修改Array執行個體的length屬性後,就會改變該數組的容量。
    比如JScript的數組:var array = ['a', 'b', 'c'];
    我們使array.length=1,數組內元素就變成了:['a'];
    如果讓array.length=5,數組內元素就變成了:['a', 'b', 'c', '', '']。
    // 操作都相對於原始數組進行
    
    這個特性除了JScript外,.NET Framework中BCL類StringBuilder的執行個體也有這個特性。
    比如StringBuilder的執行個體:StringBuilder strb = new StringBuilder("abc");
    我們使strb.Length=1,對象內容變為:"a";
    如果讓strb.Length=5,對象內容變為:"abc  ";
    當新的Lenght小於strb本身的Length時,對象的內容按指定的長度截斷;如果新的Length大於strb本身的Length時,系統用空格補充不足。

    使用StringBuilder的這個特性,我們還可以用它來實現一個擷取指定個數空白字元串的函數:
    string GetSpaces(int count)
    {
        StringBuilder strb = new StringBuilder(count);
        strb.Length = count;
        return strb.ToString();
    }
    // 高效清爽哦~~

    當然StringBuilder這個特性我用的比較多的是,當我有一些類似:"a,b,c,d,e,"或"1;2;3;4;5;"這樣的字串,並且想獲得:"a,b,c,d,e"或"1;2;3;4;5"時。使用strb.Length = strb.Length-1就行了。

    這裡有個小技巧,如果我們的字串不是StringBuilder格式,而是string格式,我們最好不要產生:"a,b,c,d,e,"或"1;2;3;4;5;"這種格式。因為這樣我們需要使用str = str.Substring(0, str.Length-1)來截斷字串,如果我們在迴圈裡面產生的格式是:",a,b,c,d,e"或";1;2;3;4;5"。那麼要得到"a,b,c,d,e" 或 "1;2;3;4;5" 就要容易些,直接str = str.Substring(1)就可以了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.