当我们需要截取一个字符串的部分内容时,可以使用C#内置的Substring方法,它可以根据指定的位置和长度,从原始字符串中截取出一个新字符串。
Substring方法的基本使用
Substring方法用于截取字符串的一部分,可以根据指定的位置和长度获取字符串的一部分内容,其基本语法如下:
public string Substring(int startIndex);
public string Substring(int startIndex, int length);
- startIndex:截取的起始位置,从0开始计数
- length:截取的长度,可选参数,不指定则截取从 startIndex 开始到字符串结尾的所有字符。
下面是一个简单的示例,演示如何使用Substring截取字符串的一部分:
string str = "Hello, world!";
string subStr = str.Substring(2, 5);
Console.WriteLine("原始字符串:" + str);
Console.WriteLine("截取后的字符串:" + subStr);
输出结果如下:
原始字符串:Hello, world!
截取后的字符串:llo,
上述示例中,我们首先定义了一个字符串变量str,并将其赋值为"Hello, world!"。然后使用Substring方法从第三个字符(索引为2)开始,截取长度为5的字符组成的字符串。
通过这个例子,我们可以看出,Substring方法截取字符串时,包含起始位置所指定的字符,但不包含结束位置所指定的字符。
Substring截取字符串的几个注意点
虽然Substring方法使用起来很简单,但有几个细节需要注意:
- Substring方法的startIndex参数必须大于等于0且小于原始字符串长度,否则会抛出 ArgumentOutOfRangeException 异常。
- 如果不指定length参数,则会截取从startIndex开始一直到字符串结尾的所有字符。
- 如果指定的length参数超出了startIndex后剩余字符的数量,Substring方法仅会截取到原始字符串的结尾,而不会抛出异常。
下面是一个包含上述注意点的示例:
string str = "Hello, world!";
string subStr1 = str.Substring(-1, 5); // 抛出ArgumentOutOfRangeException异常
string subStr2 = str.Substring(2); // 截取“llo, world!”
string subStr3 = str.Substring(2, 50); // 截取“llo, world!”
Console.WriteLine("原始字符串:" + str);
Console.WriteLine("截取后的字符串1:" + subStr1);
Console.WriteLine("截取后的字符串2:" + subStr2);
Console.WriteLine("截取后的字符串3:" + subStr3);
输出结果如下:
原始字符串:Hello, world!
截取后的字符串1:系统.ArgumentOutOfRangeException: 索引和长度必须引用字符串内的位置。参数名:length
截取后的字符串2:llo, world!
截取后的字符串3:llo, world!
上述示例中,第一次使用Substring方法时,我们将startIndex参数设置为-1,这会抛出ArgumentOutOfRangeException异常,因为这个参数的值小于0。
第二次使用Substring方法时,我们只指定了startIndex参数,而没有指定length参数,这会让Substring方法截取从startIndex开始的所有字符,即“llo, world!”。
第三次使用Substring方法时,我们将length参数设置为50,超出了原始字符串的长度,但Substring方法仅截取到了字符串的结尾。
Substring方法的应用场景
Substring方法可以帮助我们从字符串中截取出指定的内容,常见的应用场景包括:
- 截取URL地址中的域名部分
- 从HTML代码中解析出需要的信息
- 从数据库中查询出的数据中截取指定字段
下面是一个获取URL地址中域名部分的示例:
string url = "https://www.baidu.com/search?q=c%23+Substring";
int startIndex = url.IndexOf("://") + 3;
int endIndex = url.IndexOf('/', startIndex);
string domain = url.Substring(startIndex, endIndex - startIndex);
Console.WriteLine("原始URL地址:" + url);
Console.WriteLine("提取出来的域名:" + domain);
输出结果如下:
原始URL地址:https://www.baidu.com/search?q=c%23+Substring
提取出来的域名:www.baidu.com
上述示例中,我们首先定义了一个字符串变量url,并将其赋值为"https://www.baidu.com/search?q=c%23+Substring"。然后使用IndexOf方法找到“://”后的第一个字符所在的位置,并将其加上3,得到域名的起始位置。接着使用IndexOf方法找到第一个/字符的位置作为域名的结束位置。最后使用Substring方法从原始字符串中截取出域名部分。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【C#基础】Substring截取字符串的方法小结(推荐) - Python技术站