C#中的Split用法以及详解
一、String.Split方法提供了如下6个重载函数:
| 名称 | 说明 |
|---|---|
| String.Split (Char[]) | 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。
由 .NET Compact Framework 支持。 |
| String.Split (Char[], Int32) | 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。参数指定返回的子字符串的最大数量。 |
| String.Split (Char[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。 |
| String.Split (String[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。 |
| String.Split (Char[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。 |
| String.Split (String[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。 |
以下详细举例说明:
1.String.Split(Char[])
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'}); 或string []strArray = str.Split('t'); //单字符切割(result : "aaa" "bbscc" "dd")
string []strArray = str.Split(new char[]{'t','s'}); //多字节切割(result : "aaa" "bb" "cc" "dd")
2.String.Split(Char[],Int32)
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t',2});//只切割成2份(result :"aaa" "bbscctdd")
3.String.Split(Char[],StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new char[]{'t',StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd")
string []strArray = str.Split(new char[]{'t',StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)
4.String.Split(String[],StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new String[]{"t",StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd")
string []strArray = str.Split(new String[]{"t",StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)
5.String.Split(Char[],Int32,StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt")
string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)
6.String.Split(String[],Int32,StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt")
string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)
二、正则匹配拆分字符串提供了5个重载函数:
| 名称 | 说明 |
|---|---|
| Regex.Split (String) | 在由 Regex 构造函数中指定的正则表达式模式定义的位置拆分指定的输入字符串。
由 .NET Compact Framework 支持。 |
| Regex.Split (String, Int32) | 在由 Regex 构造函数中指定的正则表达式定义的位置,将指定的输入字符串拆分指定的最大次数。
由 .NET Compact Framework 支持。 |
| Regex.Split (String, String) | 在由正则表达式模式定义的位置拆分输入字符串。
由 .NET Compact Framework 支持。 |
| Regex.Split (String, Int32, Int32) | 从输入字符串中的指定字符位置开始,在由 Regex 构造函数中指定的正则表达式定义的位置,将指定的输入字符串拆分指定的最大次数。
由 .NET Compact Framework 支持。 |
| Regex.Split (String, String, RegexOptions) | 在由指定的正则表达式模式定义的位置拆分输入字符串。可指定选项来修改匹配的行为。
由 .NET Compact Framework 支持。 |
using System.Text.RegularExpressions;
1.Regex.Split(String,String)
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts"); //正则匹配切割(result: "aaa" "bb" "cc" "dd");
2.Regex.Split(String,String)
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts",RegexOptions.IgnoreCase); //正则匹配切割(result: "aaa" "bb" "cc" "dd");
三、应用
1.单字符拆分
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'}); 或string []strArray = str.Split('t'); //单字符切割(result : "aaa" "bbscc" "dd")
2.多字符拆分
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t','s'}); //多字节切割(result : "aaa" "bb" "cc" "dd")
3.字符串拆分
using System.Text.RegularExpressions;
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts",RegexOptions.IgnoreCase); //正则匹配切割且(result: "aaa" "bb" "cc" "dd");
或者
string str = "aaatsbbtscctsdd";
string []strArray = str.Split(new string[]{"ts"}); //字符串切割(result : "aaa" "bb" "cc" "dd")
注意:
1.String.Split方法没有重载String.Split(stirng [])方法,也就是说str.Split("t")或者str.Split(new string[]{"ts","dd"})都是错误的。
2.除了切割单字符可用String.Split('t')外,其它的都必须用String.Split(new char[]{})这样的格式,否则编译会出错
C#中的Split用法以及详解的更多相关文章
- python中argparse模块用法实例详解
python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...
- Nmap在实战中的高级用法(详解)
@ 目录 Nmap在实战中的高级用法(详解) Nmap简单的扫描方式: 一.Nmap高级选项 1.查看本地路由与接口 2.指定网口与IP地址 3.定制探测包 二.Nmap扫描防火墙 1.SYN扫描 2 ...
- jQuery中on()方法用法实例详解
这篇文章主要介绍了jQuery中on()方法用法,实例分析了on()方法的功能及各种常见的使用技巧,并对比分析了与bind(),live(),delegate()等方法的区别,需要的朋友可以参考下 本 ...
- Laravel中Trait的用法实例详解
本文实例讲述了Laravel中Trait的用法.分享给大家供大家参考,具体如下: 看看PHP官方手册对Trait的定义: 自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 trait ...
- PHP中spl_autoload_register()函数用法实例详解
本文实例分析了PHP中spl_autoload_register()函数用法.分享给大家供大家参考,具体如下: 在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这 ...
- 关于MVC4.0中@Styles.Render用法与详解
本文分享于http://keleyi.com/a/bjac/q74dybjc.htm文章,感觉写的蛮好所以就拿过来做笔记了,希望对大家有帮助 最近公司的新项目用了MVC 4.0,接下来一步步把 工作中 ...
- 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解 多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...
- 图论中DFS与BFS的区别、用法、详解…
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 图论中DFS与BFS的区别、用法、详解?
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
随机推荐
- MVC——MVP——MVVM
MVC什么样? 从这个图中可以清楚的看到: View:视图层——这里是用户与之交互的界面. Model:模型层——这里面主要就是业务数据,并把数据提供给视图层 Controller:控制器——他的主要 ...
- 【Linux】YUM源搭建
YUM是什么? YUM是什么 基于rpm但更胜于rpm的软件管理工具: YUM有服务端和客户端: 如果服务端和客户端在同一台机器,这是本地YUM: 如果服务端和客户端不在同一台机器,这是网络YUM. ...
- jquery里操作json相关的方法和实例
$.getJSON("/html/aijquery/JSON.js",function(d){ $.each(d,function(i,v){ $( ...
- STM32利用CUBEMX建立自定义HID工程,并且完成64字节的IN,OUT传输功能。
STM32 Customed HID开发流程 本文介绍的是STM32的cubeMX自定义HID的开发流程 cubeMX配置customed HID模式.更多详细配置壳查看代码CubeMX的配置文件. ...
- 自学tensorflow——1.框架初步了解以及构建简单的计算图计算
1.初步了解 tensorflow是谷歌的一款开源深度学习框架.运行前,需要先定义好计算图,最后通过会话启动计算图,这么做的目的是为了防止数据在python和c++(tensorflow底层)传输的时 ...
- 《Nginx高性能Web服务器》系列分享专栏
<Nginx高性能Web服务器>系列分享专栏 [作者:Poechant] Nginx是目前最流行的基于BSD-like协议.轻量级.高性能的HTTP服务器.反向代理服务器和电子邮件(SMT ...
- 10 Quality Free Flat Icon Sets for Your Designs
Subscribe It’s clear that flat design has gained great popularity in recent years. This is hardly su ...
- flex stacked column graph
Flex: Stacked column chart – programmatically in actionscript By bishopondevelopment I was looking f ...
- 单线程的redis为什么吞吐量可以这么大
原文:单线程的redis为什么吞吐量可以这么大 一.Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.r ...
- Intellij IDEA 2017 通过scala工程运行wordcount
首先是安装scala插件,可以通过idea内置的自动安装方式进行,也可以手动下载可用的插件包之后再通过idea导入. scala插件安装完成之后,新建scala项目,右侧使用默认的sbt 点击Next ...