C#中substr和substring的區別

來源:互聯網
上載者:User

這兩個方法比較有意思,很像,但結果卻是相差十萬八千裡。我也是從誤用它們開始,慢慢進入到它們的世界。因為很巧的是當start是為0的時候,二者的結果是一樣,而我在這之前就看過substr這個方法。所以讓我產生一種錯覺,就是只有substr,沒有substring。當我發現是兩個方法來的時候,我會傻笑自己的無知。下面介紹這兩個方法:

substr(start[,length])表示從start位置開始取length個字串
substring(start,end)表示從start,到end之間的字串,包括start位置的字元但是不包括end位置的字元

 
Js的substring和C#的Substring的作用都是從一個字串中截取出一個子字串,但它們的使用方法卻有很大的不同,下邊我們來比較看看:

Js的substring

文法:

程式碼
String.substring(start, end)

說明:
返回一個從start開始到end(不包含end)的子字串。

樣本:

程式碼
var str="abcdefgh";
document.write(str.substring(0,1));//return:a
document.write(str.substring(2,5));//return:cde
document.write(str.substring(7,8));//return:h

C#的Substring

文法:

程式碼
String.Substring(int startIndex)
String.Substring(int startIndex, int length)

說明:
返回一個從startIndex開始到結束的子字串,或返回一個從startIndex開始,長度為length的子字串。

樣本:

程式碼
string str = "abcdefgh";
Response.Write(str.Substring(0,1));//return:a
Response.Write(str.Substring(2,3));//return:cde
Response.Write(str.Substring(7,1));//return:h
Response.Write(str.Substring(7));//return:h
Response.Write(str.Substring(10));//error:startIndex 不能大於字串長度。
Response.Write(str.Substring(7,10));//error:索引和長度必須引用該字串內的位置。

經過上邊的說明對它們的使用應該有個比較清楚的認識了,但對Js的substring還有幾點要說明:

1.start不一定就是第一個參數,end也不一定就是第二個參數,substring(3,1)時,開始位置是1,結束位置是3;
2.當要返回的子字串是從開始位置到結束時,end的值必須大於等於字串的長度,如上邊的str.substring(7,8),按照索引從0開始算的話end的最大值為7,但這邊卻用8,當然,使用大於8的數返回的結果也是一樣的,這點比較有意思。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.