首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

C# IndexOf 與字串搜尋方法完整指南

     編輯:ASP.NET 基礎

IndexOf 方法詳細解析

IndexOf() 是 C# 中最常用的字串搜尋方法,用於尋找指定字元或子字串在字串中首次出現的索引位置(從 0 開始計算)。若找不到則回傳 -1。

基本用法

string str1 = "Hello World";
// 搜尋單一字元
int pos1 = str1.IndexOf('W'); // 回傳 6

// 搜尋子字串
int pos2 = str1.IndexOf("World"); // 回傳 6

// 指定搜尋起始位置
int pos3 = str1.IndexOf('l', 3); // 從索引 3 開始找 'l',回傳 3

// 指定搜尋範圍 (起始索引, 搜尋長度)
int pos4 = str1.IndexOf('l', 3, 5); // 從索引 3 開始往後 5 個字元內找 'l'

進階變體

  • LastIndexOf():從字串末尾向前搜尋,回傳最後一次出現的位置。
  • IndexOfAny(char[]):搜尋字元陣列中任一字元首次出現的位置。
  • LastIndexOfAny(char[]):從後向前搜尋任一字元最後出現的位置。

IndexOfAny 範例

char[] targets = { 's', 'c', 'b' };
string text = "acsdfgdfgchacscdsad";

text.IndexOfAny(targets);        // 回傳 1 (找到 'c')
text.IndexOfAny(targets, 5);     // 從索引 5 開始找,回傳 9
text.IndexOfAny(targets, 5, 3);  // 從索引 5 開始找 3 個字元,回傳 9

Substring 方法:擷取子字串

Substring() 用於從字串中截取指定範圍的子字串。

語法與範例

string a = "aadsfdjkfgklfdglfd";

// 從索引 5 截取到結尾
string sub1 = a.Substring(5); // "djkfgklfdglfd"

// 從索引 0 截取長度 5
string sub2 = a.Substring(0, 5); // "aadsf"

常見陷阱提醒

  • 索引超出範圍會拋出 ArgumentOutOfRangeException。
  • Substring 不會修改原字串,字串在 C# 中是不可變的。
  • 搭配 IndexOf 可實現動態截取(如解析 CSV、URL 參數等)。

效能與替代方案

若需進行複雜模式比對(如驗證 Email、解析 HTML),建議使用 Regex 類別(正則表達式),功能更強大且彈性更高。

總結

方法搜尋方向回傳值適用場景
IndexOf前→後首次出現索引單一字元/子字串定位
LastIndexOf後→前最後出現索引找最後一個分隔符等
IndexOfAny前→後任一字元首次索引多重分隔符判斷
LastIndexOfAny後→前任一字元最後索引反向多重分隔符
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved