C#:string.IndexOf

在 C# 中,字符串(string)的 IndexOf 方法用于查找子字符串在原始字符串中的位置。值得注意的是,字符串的索引是从 0 开始的,这意味着第一个字符的索引是 0,第二个字符的索引是 1,以此类推。

1、IndexOf 方法的基本使用

‌查找子字符串的第一次出现的位置‌

string originalString = "Hello, World!";

int index = originalString.IndexOf("World");

Console.WriteLine(index); // 输出 7

这里,IndexOf 方法返回子字符串 "World" 在原始字符串中的起始位置的索引,即 7。

2、 ‌查找子字符串的最后一次出现的位置‌

string originalString = "test test test";

int index = originalString.LastIndexOf("test");

Console.WriteLine(index); // 输出 10

这里使用了 LastIndexOf 方法来找到最后一次出现的位置。

‌3、查找子字符串的指定位置之后第一次出现的位置‌

string originalString = "Hello, World!";

int startIndex = 7; // 从索引7开始搜索(即"World"后面的位置)

int index = originalString.IndexOf("!", startIndex);

Console.WriteLine(index); // 输出 12,即在"World!"之后的感叹号的位置

这里从索引 7 开始搜索感叹号 "!" 的位置。

4、IndexOf 方法的高级用法

‌(1)忽略大小写‌

string originalString = "Hello, World!";

StringComparison comparisonType = StringComparison.OrdinalIgnoreCase;

int index = originalString.IndexOf("world", comparisonType);

Console.WriteLine(index); // 输出 7,即使不匹配大小写

使用 StringComparison 枚举可以指定搜索时是否忽略大小写。

‌(2)查找子字符串的索引范围‌

string originalString = "Hello, World!";

int startIndex = 0; // 开始搜索的位置

int count = originalString.Length; // 搜索的范围长度

int index = originalString.IndexOf("World", startIndex, count, StringComparison.Ordinal);

Console.WriteLine(index); // 输出 7

通过指定 startIndex 和 count,可以限制搜索的范围。

5、注意事项

  • 如果子字符串不存在于原始字符串中,IndexOf 方法将返回 -1。
  • 当使用 LastIndexOf 方法时,如果从指定的开始位置向后查找,也可以指定搜索范围。
  • 使用 IndexOf 和 LastIndexOf 的重载版本可以提供更多的灵活性,如指定搜索范围和比较类型。
相关推荐
呆呆敲代码的小Y3 分钟前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
JAI科研6 分钟前
Deepseek Agent Harness教程(七) | Deepseek Harness不是一个内核加一堆插件
开发语言·人工智能·深度学习·算法·自然语言处理·transformer·vllm
用户2986985301431 分钟前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#
孙克旭_33 分钟前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
Titan202434 分钟前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
斑马13938 分钟前
Linux软件编程学习笔记(五)——线程
开发语言·php
智脑API41 分钟前
CCSwitch Claude Code 如何配置 MCP?服务器启动、工具权限与安全测试
运维·服务器·claude·codex·ccswitch
吴声子夜歌44 分钟前
Java——数组和集合(一)
java·开发语言
呆呆敲代码的小Y1 小时前
Lua 上值(UpValue)
开发语言·junit·lua·lua上值·upvalue
呆呆敲代码的小Y1 小时前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器