String.Split 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个字符串数组,该数组包含此实例中的子字符串,这些子字符串由指定字符串或 Unicode 字符数组的元素分隔。
重载
根据指定的分隔字符串和(可选)选项,将字符串拆分为最大数量的子字符串。
Split(Char[], Int32, StringSplitOptions)根据指定的分隔字符和(可选)选项,将字符串拆分为最大数量的子字符串。
Split(Char, Int32, StringSplitOptions)根据指定的分隔符和(可选)选项,将字符串拆分为最大数量的子字符串。 根据提供的字符分隔符将字符串拆分为最大子字符串数,可以选择省略结果中的空子字符串。
java split入门零基础 Split(String[], StringSplitOptions)根据指定的分隔字符串以及(可选)选项将字符串拆分为子字符串。
Split(String, StringSplitOptions)将字符串拆分为基于提供的字符串分隔符的子字符串。
Split(Char[])根据指定的分隔字符将字符串拆分为子字符串。
Split(Char[], Int32)根据指定的分隔字符将字符串拆分为最大数量的子字符串。
Split(Char, StringSplitOptions)根据指定的分隔符以及(可选)选项将字符串拆分为子字符串。
Split(ReadOnlySpan<Char>)根据指定的分隔字符将字符串拆分为子字符串。
Split(String[], Int32, StringSplitOptions)根据指定的分隔字符串和(可选)选项,将字符串拆分为最大子字符串数。
Split(Char[], StringSplitOptions)根据指定的分隔字符和选项将字符串拆分为子字符串。
注解
Split 用于将带分隔符的字符串分解为子字符串。 可以使用字符数组或字符串数组来指定零个或多个分隔符或字符串。 如果未指定分隔字符,字符串将拆分为空白字符。
Split 方法的重载允许限制方法返回的子字符串数(Split(Char[], Int32) 方法),以指定是在结果中包含空字符串和/或剪裁子字符串(Split(Char[], StringSplitOptions) 和 Split(String[], StringSplitOptions) 方法),还是同时执行(Split(Char[], Int32, StringSplitOptions) 和 Split(String[], Int32, StringSplitOptions) 方法)。
提示
Split 方法并不总是将带分隔符的字符串分解为子字符串的**方法。 如果不想提取分隔字符串的所有子字符串,或者要基于模式而不是一组分隔符来分析字符串,请考虑使用正则表达式,或组合返回字符索引的搜索方法之一和 Substring 方法。 有关详细信息,请参阅 从字符串中提取子字符串。
例
以下示例显示了三个不同的 重载。 第一个示例调用 Split(Char[]) 重载并传入单个分隔符。
可以看到,句点字符()包含在两个子字符串中。 如果要排除句点字符,可以将句点字符添加为附加分隔符。 下一个示例演示如何执行此操作。
这些句点从子字符串中消失,但现在包含两个额外的空子字符串。 这些空子字符串表示单词与后面的句点之间的子字符串。 若要从生成的数组中省略空子字符串,可以调用 Split(Char[], StringSplitOptions) 重载并为 参数指定 StringSplitOptions.RemoveEmptyEntries。
各个重载的部分包含进一步的示例。
Split(String, Int32, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符串和(可选)选项,将字符串拆分为最大数量的子字符串。
参数
- separator
- String
用于分隔此实例中的子字符串的字符串。
- count
- Int32
数组中预期的最大元素数。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,该数组包含此实例中由 分隔的最多 子字符串。
注解
如果字符串已拆分 - 1 次,但尚未到达字符串的末尾,则返回的数组中的最后一个字符串将包含此实例的剩余尾随子字符串(未更改)。
适用于
Split(Char[], Int32, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符和(可选)选项,将字符串拆分为最大数量的子字符串。
参数
- separator
- Char[]
分隔此字符串中的子字符串的字符数组、不包含分隔符或 的空数组。
- count
- Int32
要返回的最大子字符串数。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其中包含此字符串中的子字符串,该字符串由 中的一个或多个字符分隔。 有关详细信息,请参阅“备注”部分。
- 属性
-
ComVisibleAttribute
例外
为负数。
不是 StringSplitOptions 值之一。
示例
以下示例使用 StringSplitOptions 枚举来包含或排除 Split 方法生成的子字符串。
注解
返回数组的元素中不包含分隔符字符。
如果此实例不包含 中的任何字符,或者 参数为 1,则返回的数组由包含此实例的单个元素组成。
如果 参数 或不包含任何字符,则假定空格字符为分隔符。 空格字符由 Unicode 标准定义,Char.IsWhiteSpace 方法在传递给该字符时返回 。
若要传递 参数的 ,必须指示 的类型,以消除其他某些重载(如 Split(String[], Int32, StringSplitOptions))的调用。 以下示例演示了几种明确标识此重载的方法。
如果 参数为零,或者 参数 RemoveEmptyEntries 且此实例的长度为零,则返回空数组。
的每个元素定义单独的分隔符字符。 如果 参数 None,并且相邻两个分隔符或在此实例的开头或末尾找到分隔符,则相应的数组元素包含 Empty。
如果此实例中存在多个 子字符串,则返回返回值的第一个 减 1 个元素中的第一个 减 1 个子字符串,此实例中的剩余字符在返回值的最后一个元素中返回。
如果 大于子字符串的数量,则返回可用的子字符串,并且不会引发异常。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法(可选)和 Compare 方法在字符串中查找子字符串。
如果要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 如果要在分隔符字符串中拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
在 .NET Framework 3.5 及更早版本中,如果传递 Split(Char[]) 方法的 或不包含任何字符,则该方法使用略有不同的空格字符集来拆分字符串,而不是 Trim(Char[]) 方法对字符串进行剪裁。 从 .NET Framework 4 开始,这两种方法都使用相同的 Unicode 空格字符集。
适用于
Split(Char, Int32, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔符和(可选)选项,将字符串拆分为最大数量的子字符串。 根据提供的字符分隔符将字符串拆分为最大子字符串数,可以选择省略结果中的空子字符串。
参数
- separator
- Char
分隔此实例中的子字符串的字符。
- count
- Int32
数组中预期的最大元素数。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,该数组包含此实例中由 分隔的最多 子字符串。
注解
如果字符串已拆分 - 1 次,但尚未到达字符串的末尾,则返回的数组中的最后一个字符串将包含此实例的剩余尾随子字符串(未更改)。
适用于
Split(String[], StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符串以及(可选)选项将字符串拆分为子字符串。
参数
- separator
- String[]
一个字符串数组,用于分隔此字符串中的子字符串、不包含分隔符或 的空数组。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其元素包含此字符串中的子字符串,这些子字符串由 中的一个或多个字符串分隔。 有关详细信息,请参阅“备注”部分。
- 属性
-
ComVisibleAttribute
例外
不是 StringSplitOptions 值之一。
示例
下面的示例演示了通过调用字符串的 String.Split(String[], StringSplitOptions) 方法返回的数组的差异,其 参数等于 StringSplitOptions.None 和 StringSplitOptions.RemoveEmptyEntries。
以下示例定义一个分隔符数组,其中包括标点符号和空格字符。 将此数组与 StringSplitOptions.RemoveEmptyEntries 的值一起传递给 Split(String[], StringSplitOptions) 方法将返回一个由字符串中的单个单词组成的数组。
请注意,该方法调用时 参数设置为 StringSplitOptions.RemoveEmptyEntries。 这可以防止返回的数组包括表示标点符号和空格字符之间的空子字符串匹配的 String.Empty 值。
注解
当字符串由一组已知的字符串分隔时,可以使用 Split 方法将其分隔为子字符串。
分隔符字符串不包括在返回数组的元素中。 例如,如果 数组包含字符串“--”,并且当前字符串实例的值为“aa--bb--cc”,该方法将返回包含三个元素的数组:“aa”、“bb”和“cc”。
如果此实例不包含 中的任何字符串,则返回的数组由包含此实例的单个元素组成。
如果 参数 RemoveEmptyEntries 且此实例的长度为零,该方法将返回一个空数组。
的每个元素定义由一个或多个字符组成的单独分隔符。 如果 参数 None,并且相邻两个分隔符或在此实例的开头或末尾找到分隔符,则相应的数组元素包含 String.Empty。 例如,如果 包含两个元素“-”和“_”,则字符串实例的值为“-_aa-_”,并且 参数的值 None,该方法将返回具有以下五个元素的字符串数组:
- String.Empty,表示索引 0 处“-”子字符串前面的空字符串。
- String.Empty,表示索引 0 处的“-”子字符串与索引 1 处的“_”子字符串之间的空字符串。
- “aa”。
- String.Empty,表示索引 4 处“-”子字符串后面的空字符串。
- String.Empty,表示索引 5 处“_”子字符串后面的空字符串。
分隔符数组
如果 中的任何元素都由多个字符组成,则整个子字符串被视为分隔符。 例如,如果 中的某个元素为“10”,则尝试拆分字符串“This10is10a10string”。返回以下四个元素数组:{ “This”、“is”、“a”、“string”。}。
如果 参数 或不包含非空字符串,则假定空格字符为分隔符。 空格字符由 Unicode 标准定义,Char.IsWhiteSpace 方法在传递给该字符时返回 。
若要传递 参数的 ,必须指示 的类型,以消除其他某些重载(如 Split(Char[], StringSplitOptions))的调用。 以下示例演示了几种明确标识此重载的方法。
比较详细信息
Split 方法提取此字符串中的子字符串,这些子字符串由 参数中的一个或多个字符串分隔,并将这些子字符串作为数组的元素返回。
Split 方法通过使用区分大小写的序号排序规则执行比较来查找分隔符。 有关单词、字符串和序号排序的详细信息,请参阅 System.Globalization.CompareOptions 枚举。
Split 方法忽略其值为 或空字符串(“)的任何 元素。
为了避免在 中的字符串具有常见字符时产生不明确的结果,Split 操作从实例值的开头到末尾开始,并匹配实例中与与实例中的分隔符相等的 中的第一个元素匹配。 实例中遇到子字符串的顺序优先于 元素的顺序。
例如,请考虑其值为“abcdef”的实例。 如果 中的第一个元素为“ef”,第二个元素为“bcde”,则拆分操作的结果将是包含两个元素“a”和“f”的字符串数组。 这是因为遇到实例“bcde”中的子字符串,并在遇到子字符串“f”之前匹配 中的元素。
但是,如果 的第一个元素为“bcd”,第二个元素为“bc”,则拆分操作的结果将是包含两个元素“a”和“ef”的字符串数组。 这是因为“bcd”是 中与实例中的分隔符匹配的第一个分隔符。 如果分隔符的顺序被反转,因此第一个元素为“bc”,第二个元素为“bcd”,则结果将是包含两个元素“a”和“def”的字符串数组。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法(可选)和 Compare 方法在字符串中查找子字符串。
如果要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 如果要在分隔符字符串中拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
在 .NET Framework 3.5 及更早版本中,如果传递 Split(Char[]) 方法的 或不包含任何字符,则该方法使用略有不同的空格字符集来拆分字符串,而不是 Trim(Char[]) 方法对字符串进行剪裁。 从 .NET Framework 4 开始,这两种方法都使用相同的 Unicode 空格字符集。
适用于
Split(String, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
将字符串拆分为基于提供的字符串分隔符的子字符串。
参数
- separator
- String
用于分隔此字符串中的子字符串的字符串。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其元素包含由 分隔的此实例中的子字符串。
适用于
Split(Char[])
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符将字符串拆分为子字符串。
参数
- separator
- Char[]
分隔字符数组、不包含分隔符或 的空数组。
返回
一个数组,其元素包含此实例中的子字符串,这些子字符串由 中的一个或多个字符分隔。 有关详细信息,请参阅“备注”部分。
示例
下面的示例演示如何通过将空格字符()和制表符()视为分隔符,从文本块中提取单个单词。 要拆分的字符串包括这两个字符。
注解
当字符串由一组已知的字符分隔时,可以使用 Split(Char[]) 方法将其分隔为子字符串。
返回数组的元素中不包含分隔符字符。 例如,如果分隔符数组包含字符“-”,并且当前字符串实例的值为“aa-bb-cc”,该方法将返回包含三个元素的数组:“aa”、“bb”和“cc”。
如果此实例不包含 中的任何字符,则返回的数组由包含此实例的单个元素组成。
的每个元素定义单独的分隔符字符。 如果两个分隔符相邻,或者在此实例的开头或末尾找到分隔符,则返回的数组中的相应元素包含 Empty。
下表显示了一些示例。
分隔符数组
分隔符的每个元素定义一个单独的分隔符,该分隔符由一个字符组成。
如果 参数 或不包含任何字符,该方法会将空格字符视为分隔符。 空格字符由 Unicode 标准定义,如果向该标准传递空格字符,Char.IsWhiteSpace 方法将返回 。
String.Split(Char[]) 和编译器重载解析
尽管此重载 String.Split 的单个参数是字符数组,但可以使用单个字符调用它,如以下示例所示。
由于 参数使用 ParamArrayAttribute 属性进行修饰,因此编译器会将单个字符解释为单元素字符数组。 对于包含 参数的其他 String.Split 重载,情况并非如此;必须将这些重载显式传递为字符数组作为 参数。
比较详细信息
Split(Char[]) 方法提取此字符串中的子字符串,这些子字符串由 数组中的一个或多个字符分隔,并将这些子字符串作为数组的元素返回。
Split(Char[]) 方法通过使用区分大小写的序号排序规则执行比较来查找分隔符。 有关单词、字符串和序号排序的详细信息,请参阅 System.Globalization.CompareOptions 枚举。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法。 还可以选择使用 Compare 方法在字符串中查找子字符串。
若要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 若要在分隔符字符串处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
在 .NET Framework 3.5 及更早版本中,如果传递 Split(Char[]) 方法的 或不包含任何字符,则该方法使用略有不同的空格字符集来拆分字符串,而不是 Trim(Char[]) 方法对字符串进行剪裁。 从 .NET Framework 4 开始,这两种方法都使用相同的 Unicode 空格字符集。
另请参阅
- Char
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Replace(Char, Char)
- Substring(Int32)
- Trim(Char[])
适用于
Split(Char[], Int32)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符将字符串拆分为最大数量的子字符串。
参数
- separator
- Char[]
分隔此字符串中的子字符串的字符数组、不包含分隔符或 的空数组。
- count
- Int32
要返回的最大子字符串数。
返回
一个数组,其元素包含此实例中的子字符串,这些子字符串由 中的一个或多个字符分隔。 有关详细信息,请参阅“备注”部分。
例外
为负数。
示例
以下示例演示如何使用 来限制 Split返回的字符串数。
注解
返回数组的元素中不包含分隔符字符。
如果此实例不包含 中的任何字符,则返回的数组由包含此实例的单个元素组成。 如果 为零,则返回空数组。
如果 参数 或不包含任何字符,则假定空格字符为分隔符。 空格字符由 Unicode 标准定义,Char.IsWhiteSpace 方法在传递给该字符时返回 。
的每个元素定义单独的分隔符字符。 如果两个分隔符相邻,或者在此实例的开头或末尾找到分隔符,则相应的数组元素包含 Empty。
如果此实例中有多个 子字符串,则返回值的第一个 元素中返回第一个 子字符串,并且此实例中的剩余字符在返回值的最后一个元素中返回。
如果 大于子字符串的数量,则返回可用的子字符串,并且不会引发异常。
下表显示了一些示例。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法(可选)和 Compare 方法在字符串中查找子字符串。
如果要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 如果要在分隔符字符串中拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
在 .NET Framework 3.5 及更早版本中,如果传递 Split(Char[]) 方法的 或不包含任何字符,则该方法使用略有不同的空格字符集来拆分字符串,而不是 Trim(Char[]) 方法对字符串进行剪裁。 从 .NET Framework 4 开始,这两种方法都使用相同的 Unicode 空格字符集。
另请参阅
- Char
- Array
- Int32
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Replace(Char, Char)
- Substring(Int32)
- Trim(Char[])
适用于
Split(Char, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔符以及(可选)选项将字符串拆分为子字符串。
参数
- separator
- Char
分隔此字符串中的子字符串的字符。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其元素包含由 分隔的此实例中的子字符串。
适用于
Split(ReadOnlySpan<Char>)
根据指定的分隔字符将字符串拆分为子字符串。
参数
- separator
- ReadOnlySpan<Char>
分隔字符的范围,或不包含分隔符的空范围。
返回
一个数组,其元素包含此实例中的子字符串,这些子字符串由 中的一个或多个字符分隔。
适用于
Split(String[], Int32, StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符串和(可选)选项,将字符串拆分为最大子字符串数。
参数
- separator
- String[]
分隔此字符串中的子字符串的字符串、不包含分隔符或 的空数组。
- count
- Int32
要返回的最大子字符串数。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其元素包含此字符串中的子字符串,这些子字符串由 中的一个或多个字符串分隔。 有关详细信息,请参阅“备注”部分。
- 属性
-
ComVisibleAttribute
例外
为负数。
不是 StringSplitOptions 值之一。
示例
以下示例使用 StringSplitOptions 枚举来包含或排除 Split 方法生成的子字符串。
注解
分隔符字符串不包括在返回数组的元素中。
如果此实例不包含 中的任何字符串,或者 参数为 1,则返回的数组由包含此实例的单个元素组成。
如果 参数 或不包含任何字符,则假定空格字符为分隔符。 空格字符由 Unicode 标准定义,Char.IsWhiteSpace 方法在传递给该字符时返回 。
若要传递 参数的 ,必须指示 的类型,以消除其他某些重载(如 Split(Char[], Int32, StringSplitOptions))的调用。 以下示例演示了几种明确标识此重载的方法。
如果 参数为零,或者 参数 RemoveEmptyEntries 且此实例的长度为零,则返回空数组。
的每个元素定义由一个或多个字符组成的单独分隔符。 如果 参数 None,并且相邻两个分隔符或在此实例的开头或末尾找到分隔符,则相应的数组元素包含 Empty。
如果此实例中存在多个 子字符串,则返回返回值的第一个 减 1 个元素中的第一个 减 1 个子字符串,此实例中的剩余字符在返回值的最后一个元素中返回。
如果 大于子字符串的数量,则返回可用的子字符串,并且不会引发异常。
分隔符数组
如果 中的任何元素都由多个字符组成,则整个子字符串被视为分隔符。 例如,如果 中的某个元素为“10”,则尝试拆分字符串“This10is10a10string”。返回以下四个元素数组:{ “This”、“is”、“a”、“string”。}。
比较详细信息
Split 方法提取此字符串中的子字符串,这些子字符串由 参数中的一个或多个字符串分隔,并将这些子字符串作为数组的元素返回。
Split 方法通过使用区分大小写的序号排序规则执行比较来查找分隔符。 有关单词、字符串和序号排序的详细信息,请参阅 System.Globalization.CompareOptions 枚举。
Split 方法忽略其值为 或空字符串(“)的任何 元素。
为了避免在 中的字符串具有共同字符时出现不明确的结果,Split 方法从实例值的开头到末尾继续,并匹配实例中与实例中的分隔符相等的 中的第一个元素。 实例中遇到子字符串的顺序优先于 元素的顺序。
例如,请考虑其值为“abcdef”的实例。 如果 中的第一个元素为“ef”,第二个元素为“bcde”,则拆分操作的结果为“a”和“f”。 这是因为遇到实例“bcde”中的子字符串,并在遇到子字符串“f”之前匹配 中的元素。
但是,如果 的第一个元素为“bcd”,第二个元素为“bc”,则拆分操作的结果将是“a”和“ef”。 这是因为“bcd”是 中与实例中的分隔符匹配的第一个分隔符。 如果分隔符的顺序被反转,因此第一个元素为“bc”,第二个元素为“bcd”,则结果为“a”和“def”。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法(可选)和 Compare 方法在字符串中查找子字符串。
如果要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 如果要在分隔符字符串中拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
在 .NET Framework 3.5 及更早版本中,如果传递 Split(Char[]) 方法的 或不包含任何字符,则该方法使用略有不同的空格字符集来拆分字符串,而不是 Trim(Char[]) 方法对字符串进行剪裁。 从 .NET Framework 4 开始,这两种方法都使用相同的 Unicode 空格字符集。
适用于
Split(Char[], StringSplitOptions)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
根据指定的分隔字符和选项将字符串拆分为子字符串。
参数
- separator
- Char[]
分隔此字符串中的子字符串的字符数组、不包含分隔符或 的空数组。
- options
- StringSplitOptions
枚举值的按位组合,指定是否剪裁子字符串并包括空子字符串。
返回
一个数组,其元素包含此字符串中的子字符串,这些子字符串由 中的一个或多个字符分隔。 有关详细信息,请参阅“备注”部分。
- 属性
-
ComVisibleAttribute
例外
不是 StringSplitOptions 值之一。
示例
以下示例使用 StringSplitOptions 枚举来包含或排除 Split 方法生成的子字符串。
注解
分隔符字符( 数组中的字符)不包括在返回数组的元素中。 例如,如果 数组包含字符“-”,并且当前字符串实例的值为“aa-bb-cc”,该方法将返回包含三个元素的数组:“aa”、“bb”和“cc”。
如果此实例不包含 中的任何字符,则返回的数组由包含此实例的单个元素组成。
如果 参数 RemoveEmptyEntries 且此实例的长度为零,该方法将返回一个空数组。
的每个元素定义一个单独的分隔符,该分隔符由一个字符组成。 如果 参数 None,并且相邻两个分隔符或在此实例的开头或末尾找到分隔符,则相应的数组元素包含 String.Empty。 例如,如果 包含两个元素, 和 ,则字符串实例的值为“-_aa-_”,并且 参数的值 None,该方法将返回具有以下五个元素的字符串数组:
- String.Empty,表示索引 0 处“-”字符前面的空字符串。
- String.Empty,表示索引 0 处的“-”字符和索引 1 处的“_”字符之间的空字符串。
- “aa”。
- String.Empty,表示索引 4 处“-”字符后面的空字符串。
- String.Empty,表示索引 5 处“_”字符后面的空字符串。
分隔符数组
如果 参数 或不包含任何字符,则假定空格字符为分隔符。 空格字符由 Unicode 标准定义,Char.IsWhiteSpace 方法在传递给该字符时返回 。
若要传递 参数的 ,必须指示 的类型,以消除其他某些重载(如 Split(String[], StringSplitOptions))的调用。 以下示例演示了几种明确标识此重载的方法。
比较详细信息
Split 方法提取此字符串中的子字符串,这些子字符串由 参数中的一个或多个字符分隔,并将这些子字符串作为数组的元素返回。
Split 方法通过使用区分大小写的序号排序规则执行比较来查找分隔符。 有关单词、字符串和序号排序的详细信息,请参阅 System.Globalization.CompareOptions 枚举。
性能注意事项
Split 方法为返回的数组对象分配内存,并为每个数组元素分配 String 对象。 如果应用程序需要**性能,或者管理内存分配在应用程序中至关重要,请考虑使用 IndexOf 或 IndexOfAny 方法(可选)和 Compare 方法在字符串中查找子字符串。
如果要在分隔符处拆分字符串,请使用 IndexOf 或 IndexOfAny 方法在字符串中找到分隔符。 如果要在分隔符字符串中拆分字符串,请使用 IndexOf 或 IndexOfAny 方法查找分隔符字符串的第一个字符。 然后使用 Compare 方法确定第一个字符后面的字符是否等于分隔符字符串的剩余字符。
此外,如果使用同一组字符在多个 Split 方法调用中拆分字符串,请考虑创建单个数组并在每个方法调用中引用它。 这大大减少了每个方法调用的额外开销。
调用方说明
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19194.html