1. 程式人生 > 實用技巧 >C#筆記-02:有關字串中查詢字元兩種方式————IndexOf和LastIndexOf的細微區別

C#筆記-02:有關字串中查詢字元兩種方式————IndexOf和LastIndexOf的細微區別

  首先,先說說這兩種查護照方式的基本特點。

  IndexOf()是查詢某個字元首次出現的位置,查詢順序是從左到右。

  LastIndexOf()是查詢某個字元最後出現的位置,查詢順序是從右到左。

  兩者在查詢時,字串中字元下標都是從0開始,從左往右遞增的。

  接下來我要說說,今天在解決開發時遇到的一個小問題時瞭解到的一個小知識。

  直接說結論:當查詢的字串帶 “ . ” 時,在確定要查詢的字元後,若與substring配合使用,在擷取檔名時,使用IndexOf會將 “ . ”後的字元包括字尾名一併擷取。 而使用LastIndexOf()時,會自動忽略“ . ”後的字元。

  示例:對檔名str進行操作(注意是檔名,從檔名稱提取出的檔名,不是字串,以下是為了方便才這樣寫的)  

string str = “Test_V1.1.txt”;
string output1 = Substring(str.IndexOf("V"));//擷取第一個V後面的字元
string output2 = Substring(str.LastIndexOf("V"));//擷取最後一個V後面的字元

  結果:

  output1為V1.1.txt

  output2為V1

  這個細微的差別在有時候還是要多注意,不然也會造成一些小煩惱。。。