本章来自AI问答的摘录。
在C#中,String.Split 方法是一个非常强大的字符串处理工具,用于将字符串分割成子字符串数组。Split 方法有多种重载版本,每种版本都提供了不同的功能和灵活性。以下是 String.Split 的所有重载方法及其详细说明:
1. String.Split(params char[] separator)
功能描述:将字符串按照指定的字符数组分割成子字符串数组。如果没有指定分隔符,则默认使用空格(' ')作为分隔符。
参数:
separator:一个字符数组,表示分隔符。如果为 null 或空数组,则默认使用空格作为分隔符。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one,two;three four";
char[] delimiters = { ',', ';', ' ' };
string[] parts = text.Split(delimiters);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two
three
four
2. String.Split(char separator)
功能描述:将字符串按照指定的单个字符分割成子字符串数组。
参数:
separator:一个字符,表示分隔符。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one,two,three,four";
string[] parts = text.Split(',');
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two
three
four
3. String.Split(char[] separator, StringSplitOptions options)
功能描述:将字符串按照指定的字符数组分割成子字符串数组,并可以通过 StringSplitOptions 控制分割行为。
参数:
separator:一个字符数组,表示分隔符。
options:StringSplitOptions 枚举,用于控制分割行为:
None:默认行为,保留所有分割结果,包括空字符串。
RemoveEmptyEntries:移除结果中的空字符串。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one,,two;three;;four";
char[] delimiters = { ',', ';', ' ' };
string[] parts = text.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two
three
four
4. String.Split(char separator, int count)
功能描述:将字符串按照指定的单个字符分割成子字符串数组,并限制分割后的数组长度。
参数:
separator:一个字符,表示分隔符。
count:一个整数,表示分割后的最大子字符串数量。
返回值:
返回一个字符串数组,表示分割后的子字符串。如果分割后的子字符串数量超过 count,则剩余部分会被合并为最后一个元素。
示例:
string text = "one,two,three,four";
string[] parts = text.Split(',', 2);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two,three,four
5. String.Split(char[] separator, int count)
功能描述:将字符串按照指定的字符数组分割成子字符串数组,并限制分割后的数组长度。
参数:
separator:一个字符数组,表示分隔符。
count:一个整数,表示分割后的最大子字符串数量。
返回值:
返回一个字符串数组,表示分割后的子字符串。如果分割后的子字符串数量超过 count,则剩余部分会被合并为最后一个元素。
示例:
string text = "one,two;three,four";
char[] delimiters = { ',', ';' };
string[] parts = text.Split(delimiters, 2);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two;three,four
6. String.Split(char[] separator, int count, StringSplitOptions options)
功能描述:将字符串按照指定的字符数组分割成子字符串数组,并限制分割后的数组长度,同时可以通过 StringSplitOptions 控制分割行为。
参数:
separator:一个字符数组,表示分隔符。
count:一个整数,表示分割后的最大子字符串数量。
options:StringSplitOptions 枚举,用于控制分割行为:
None:默认行为,保留所有分割结果,包括空字符串。
RemoveEmptyEntries:移除结果中的空字符串。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one,,two;three;;four";
char[] delimiters = { ',', ';', ' ' };
string[] parts = text.Split(delimiters, 3, StringSplitOptions.RemoveEmptyEntries);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two
three;;four
7. String.Split(string[] separator, StringSplitOptions options)
功能描述:将字符串按照指定的字符串数组分割成子字符串数组,并可以通过 StringSplitOptions 控制分割行为。
参数:
separator:一个字符串数组,表示分隔符。
options:StringSplitOptions 枚举,用于控制分割行为:
None:默认行为,保留所有分割结果,包括空字符串。
RemoveEmptyEntries:移除结果中的空字符串。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one--two;;three,,,four";
string[] delimiters = { "--", ";", ",," };
string[] parts = text.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two
three
four
8. String.Split(string[] separator, int count, StringSplitOptions options)
功能描述:将字符串按照指定的字符串数组分割成子字符串数组,并限制分割后的数组长度,同时可以通过 StringSplitOptions 控制分割行为。
参数:
separator:一个字符串数组,表示分隔符。
count:一个整数,表示分割后的最大子字符串数量。
options:StringSplitOptions 枚举,用于控制分割行为:
None:默认行为,保留所有分割结果,包括空字符串。
RemoveEmptyEntries:移除结果中的空字符串。
返回值:
返回一个字符串数组,表示分割后的子字符串。
示例:
string text = "one--two;;three,,,four";
string[] delimiters = { "--", ";", ",," };
string[] parts = text.Split(delimiters, 2, StringSplitOptions.RemoveEmptyEntries);
foreach (string part in parts)
{
Console.WriteLine(part);
}
输出:
one
two;;three,,,four
总结
String.Split 提供了多种重载版本,可以根据实际需求选择合适的参数组合:
- 简单分割:使用单个字符或字符数组作为分隔符。
- 控制分割行为:通过 StringSplitOptions 移除空字符串。
- 限制分割数量:通过 count 参数控制分割后的数组长度。
- 复杂分隔符:使用字符串数组作为分隔符,支持多字符分隔符。
这些重载方法提供了强大的灵活性,能够满足大多数字符串分割的场景。