当在c#中需要对字符串进行分割时,有多种方法可供选择,包括使用Split方法、正则表达式、Substring方法等等。下面将具体介绍这些方法的使用。
使用Split方法
Split方法是最简单的分割方法,它可以根据指定的字符或字符串将原字符串拆分成一个字符串数组。
语法如下:
string[] result = originalString.Split(new char[] { '分割字符1', '分割字符2' ...... });
其中,new char[] { '分割字符1', '分割字符2' ...... }指定分割的字符的数组。例如:
string str = "hello_world_csharp";
string[] arr = str.Split(new char[] { '_' });
上述代码将字符串"hello_world_csharp"按照'_'字符进行分割,并将结果存储在一个字符串数组中,结果为["hello", "world", "csharp"]。
使用正则表达式
正则表达式也可以用来分割字符串,它更加灵活,可以指定更为复杂的规则。
可以使用Regex类中的Split方法,语法如下:
string[] result = Regex.Split(originalString, "分割正则表达式");
例如:
string str = "hello_world_csharp";
string[] arr = Regex.Split(str, "_");
输出结果同上述Split方法的例子一致。
使用Substring方法
Substring方法也可以用来分割字符串,但它是取出原字符串的子串的方法,需要手动编写代码来实现分割的效果。
例如,将"hello_world_csharp"按照'_'字符进行分割,可以这样实现:
string str = "hello_world_csharp";
int last = 0;
List<string> lst = new List<string>();
for (int i = 0; i < str.Length; i++)
{
if (str[i] == '_')
{
lst.Add(str.Substring(last, i - last));
last = i + 1;
}
}
lst.Add(str.Substring(last));
string[] arr = lst.ToArray();
这里使用了一个List来存储分割后的结果,最后将List转换成数组并返回。
示例2:
上述方法较为繁琐,但也可以通过Linq的方式简化代码,例如:
string str = "hello_world_csharp";
string[] arr = str.Split('_').Select(x => x.Trim()).ToArray();
上述代码使用Split方法得到字符串数组,再对每条数据进行Trim操作,去掉前后的空格,最后返回一个新的字符串数组。
总结:
以上介绍了c#中三种分割字符串的方法,其中Split方法最为简单易用,正则表达式最为灵活,Substring方法需要手动编写代码,灵活性较差。根据不同的需求应选择不同的分割方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#中分割字符串的几种方法 - Python技术站