C# Split用法

String.Split 方法用于将字符串按照指定的分隔符拆分成子字符串数组。最常见的是接受一个分隔符数组和一个 StringSplitOptions 枚举值作为参数。

以下是 String.Split 方法的一些常见用法:

使用单个字符作为分隔符

string str = "apple,banana,orange";  
string[] parts = str.Split(',');  
// parts 将是 { "apple", "banana", "orange" }

使用多个字符作为分隔符

string str = "apple;banana,orange";  
char[] separators = new char[] { ';', ',' };  
string[] parts = str.Split(separators);  
// parts 将是 { "apple", "banana", "orange" }

使用 StringSplitOptions.RemoveEmptyEntries 移除空条目

string str = "apple,,banana,orange,";  
//移除空条目
string[] parts = str.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);  
// parts 将是 { "apple", "banana", "orange" }

//不移除空条目
string[] parts2 = str.Split(new char[] { ',' }, StringSplitOptions.None);  
// parts2 将是 { "apple", "", "banana", "orange" }

使用字符串作为分隔符

虽然 String.Split 方法通常接受字符或字符数组作为分隔符,但你也可以通过调用 StringSplitExtensions.Split 扩展方法(需要包含 System.Linq 命名空间)来使用字符串数组作为分隔符:

string str = "apple-fruit banana-vegetable orange-fruit";  
string[] separators = new string[] { "-fruit", "-vegetable" };  
string[] parts = str.Split(separators, StringSplitOptions.RemoveEmptyEntries);  
// 注意:这不是 String.Split 的标准行为,而是 StringSplitExtensions.Split  
// parts 将是 { "apple", "banana", "orange" }(如果使用了正确的扩展方法)

注意:标准的 String.Split 方法不接受字符串数组作为分隔符。上面的 StringSplitExtensions.Split 是一个假设的扩展方法,用于说明可以使用字符串数组作为分隔符的概念。在C#的标准库中,没有直接接受字符串数组作为分隔符的 Split 方法。如果你需要按字符串分隔符拆分字符串,你可能需要编写自定义的逻辑或使用正则表达式。

使用正则表达式进行复杂的分割

如果你需要进行更复杂的分割操作(例如,基于正则表达式的模式匹配),你可以使用 Regex.Split 方法:

using System.Text.RegularExpressions;  
  
string str = "apple123banana456orange";  
string[] parts = Regex.Split(str, @"\d+"); // 使用正则表达式匹配一个或多个数字  
// parts 将是 { "apple", "banana", "orange" }

使用 StringSplitOptions 枚举和默认参数(从 C# 8.0 开始)

你可以为方法的参数提供默认值。因此,如果你不提供 StringSplitOptions 参数,它将默认为 StringSplitOptions.None

string str = "apple,,banana,orange,";  
char[] separators = new char[] { ',' };  
string[] parts = str.Split(separators); // 默认为 StringSplitOptions.None  
// parts 将是 { "apple", "", "banana", "orange", "" }

使用 MaxSplitCount 参数限制分割次数

在某些重载中,你还可以指定一个 int maxSplitCount 参数来限制分割的次数。这在你只想分割字符串的前几个部分时很有用。

string str = "apple,banana,orange,grape";  
char[] separators = new char[] { ',' };  
string[] parts = str.Split(separators, 2); // 最多分割两次  
// parts 将是 { "apple", "banana,orange,grape" }

注意:不是所有的 String.Split 重载都接受 maxSplitCount 参数。只有接受 char[] 或 string[] 分隔符和 StringSplitOptions 的重载才接受它。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值