C#中String类的几个方法

本文详细介绍了C#中String类的IndexOf、LastIndexOf及Substring方法的使用方式与注意事项,包括如何定位字符位置、查找字符串及截取子串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、String.IndexOf

String.IndexOf 方法 (Char, Int32, Int32)
报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。
String.IndexOf(value, startIndex, count)

参数
value:要查找的 Unicode 字符。
startIndex:搜索起始位置。
count:要检查的字符位置数。
返回值(Int32):
如果找到该字符,则为 value 的索引位置;否则如果未找到,则为 -1。


示例:
string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文";
Label1.Text = str.IndexOf("中国").ToString();//返回 -1
Label1.Text = str.IndexOf("盈基").ToString();//返回 3
Label1.Text = str.IndexOf("盈基",10).ToString();//返回21 说明:这是从第10个字符开始查起。
Label1.Text = str.IndexOf("邓",15,10).ToString();//返回 -1
Label1.Text = str.IndexOf("邓",15,20).ToString();//返回 -32 说明:从第15个字符开始查找,要查找的范围是从第15个字符开始后20个字符,即从第15-35个字符中查找。

2、String.LastIndexOf

String.LastIndexOf 方法
报告指定的 Unicode 字符或 String 在此实例中的最后一个匹配项的索引位置。

名称

说明

 

String.LastIndexOf (Char)

报告指定 Unicode 字符在此实例中的最后一个匹配项的索引位置。

 

String.LastIndexOf (String)

报告指定的 String 在此实例内的最后一个匹配项的索引位置。

 

String.LastIndexOf (Char, Int32)

报告指定 Unicode 字符在此实例中的最后一个匹配项的索引位置。该搜索从指定字符位置开始。

 

String.LastIndexOf (String, Int32)

报告指定的 String 在此实例内的最后一个匹配项的索引位置。该搜索从指定字符位置开始。

 

String.LastIndexOf (String, StringComparison)

报告指定字符串在当前 String 对象中最后一个匹配项的索引。一个参数指定要用于指定字符串的搜索类型。

 

String.LastIndexOf (Char, Int32, Int32)

报告指定的 Unicode 字符在此实例内的子字符串中的最后一个匹配项的索引位置。搜索从指定字符位置开始,并检查指定数量的字符位置。

 

String.LastIndexOf (String, Int32, Int32)

报告指定的 String 在此实例内的最后一个匹配项的索引位置。搜索从指定字符位置开始,并检查指定数量的字符位置。

 

String.LastIndexOf (String, Int32, StringComparison)

报告指定字符串在当前 String 对象中最后一个匹配项的索引。参数指定当前字符串中的起始搜索位置,以及要用于指定字符串的搜索类型。

 

String.LastIndexOf (String, Int32, Int32, StringComparison)

报告指定的 String 对象在此实例内的最后一个匹配项的索引位置。参数指定当前字符串中的起始搜索位置、要搜索的当前字符串中的字符数量,以及要用于指定字符串的搜索类型。

 



示例:
string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文";
Label1.Text = str.LastIndexOf("邓文").ToString();//返回-1
Label1.Text = str.LastIndexOf("邓").ToString();//返回32

Label1.Text = str.LastIndexOf("邓",8).ToString();//返回-1
Label1.Text = str.LastIndexOf("邓",20).ToString();//返回14
Label1.Text = str.LastIndexOf("邓",33).ToString();//返回32
说明:在指定的范围内查找字符,这个范围是上面的输入的参数,理解为,从索引0开始到指定的数值位置范围内查找最后一个匹配的的字符串的位置。示例中,0-8中没有“邓”字,所以返回-1,0-20范围中,有一个“邓”字在索引14位置上,0-33范围中有两个“邓”字,因为LastIndexOf是返回最后一个匹配项索引位置,所以返32,而不是14。

3、String.Substring

String.Substring 方法
从此实例检索子字符串。

名称

说明

String.Substring (Int32)

从此实例检索子字符串。子字符串从指定的字符位置开始。

String.Substring (Int32, Int32)

从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。



示例:
string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文";
Label1.Text = str.Substring(11);//返回 “国际通邓事文*深圳市盈基实业有限公司国际通邓事文”
Label1.Text = str.Substring(11,7);//返回 “国际通邓事文*”

 

 

 

String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。

 

4、总结一下:

IndexOf、LastIndexOf都是返回一个位置,是个整数值;找不到都返回-1;
IndexOf是从左向右查,LastIndexOf是从右向左查,不管是IndexOf还是LastIndexOf,索引序列都是从左到右的(起始值是0)
Substring是字符串截取,返回值是一个截取后的字符串。

### C# 中 `String` 的常用方法及其用法示例 在 C# 编程语言中,字符串处理是非常常见的操作之一。为了方便开发者高效地管理字符串对象,C# 提供了丰富的内置方法来执行各种各样的字符串操作。 #### 创建字符串实例 可以使用多种方式初始化一个新的字符串变量: ```csharp // 使用双引号定义常量字符串 string greeting = "Hello world"; // 或者通过 String 构造函数创建 string emptyStr = new string(' ', 10); // 创建由空格组成的长度为10的新字符串 ``` #### 字符串比较 用于判断两个字符串是否相等的方法有几种不同的形式: ```csharp bool isEqual = string.Equals("hello", "HELLO", StringComparison.OrdinalIgnoreCase); Console.WriteLine(isEqual ? "Strings match!" : "No Match"); // 不区分大小写匹配则输出"Strings match!" ``` #### 获取子串 当需要提取原字符串的一部分时可调用此功能: ```csharp string sentence = "This is an example."; string subSentence = sentence.Substring(8, 7); // 取得位置索引8开始后的7个字符:"example" ``` #### 查找指定字符或子串的位置 如果想知道某个特定字符首次出现于何处,则可以用如下命令查询其所在下标;同样也适用于定位某段连续文字序列第一次显现之处: ```csharp int indexA = "abcdefg".IndexOf('d'); // 返回3表示'd'位于第四个位置(基于零计数) int indexWord = "how are you doing today?".IndexOf("you"); // 找到"you"起始处即返回8 ``` #### 替换旧文本片段成新内容 允许将现有字符串中的某些部分替换成其他表达式的机制非常实用,在很多场景都能派上用场: ```csharp string oldText = "I love apples"; string newText = oldText.Replace("apples", "bananas"); Console.WriteLine(newText); // 输出"I love bananas" ``` #### 去除首尾空白或其他指定字符 有时会遇到前后带有不必要的空隙或者其他不需要的符号的情况,这时就可以借助去除两端多余成分的功能来进行清理工作: ```csharp string messyInput = "\t Hello World! \n "; string cleanOutput = messyInput.Trim(); Console.WriteLine(cleanOutput); // 清除了制表符和换行符之后仅保留核心信息:"Hello World!" ``` #### 将整个字符串转为大/小写字母显示 对于那些希望统一字母大小写的场合来说,这两个简单的转换工具无疑是最便捷的选择: ```csharp string lowerCaseMsg = "WELCOME TO MY SITE!".ToLower(); string upperCaseMsg = "welcome back again.".ToUpper(); Console.WriteLine(lowerCaseMsg); // welcome to my site! Console.WriteLine(upperCaseMsg); // WELCOME BACK AGAIN. ``` 以上就是一些关于如何运用 C# 的 `String` 型完成基本任务的例子[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值