Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >String.Split()函数

String.Split()函数

作者头像
全栈程序员站长
发布于 2022-07-09 02:29:45
发布于 2022-07-09 02:29:45
7580
举报

我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),当中用到了String.SPlit函数,所以能够上网查了该函数的用法 例如以下:

#中使用string.Split方法来切割字符串的注意事项: string.Split给我们提供了非常灵活的使用方式, 可是假设使用不当, 会造成错误, 近期在做code review时, 看到大部分人这么使用: string s = “A|B|:|C:D”; string[] ss = s.Split(“|:|”.ToCharArray()); //ss[0]: A //ss[1]: B //ss[2]: //ss[3]: //ss[4]: C //ss[5]: D 事实上他的本意是使用”|:|”将字符串分开的, 目标是为了得到数组: “A|B” 和 “C:D”, 可是没有直接找到Split(string)的重载, 全部就是用了ToCharArray(), 非常显然, 得到的结果是错误的.

正确的使用方法为: string[] ss1 = s.Split(new[] {“|:|”}, StringSplitOptions.None); //ss1[0]: A|B //ss1[1]: C:D 后一个參数, 是标志是否自己主动remove empty的数据. 比如: “A|B|:|C:D|:|” 做切割时, 会返回三个数组, 该数组的最后一个元素是空“”, 假设我们想过滤掉这些空的元素, 能够使用參数: StringSplitOptions.RemoveEmptyEntries 即: string[] ss1 = s.Split(new[] {“|:|”}, StringSplitOptions.RemoveEmptyEntries); 样例:

s = “A|B|:|C:D|:|”; string[] ss1 = s.Split(new[] {“|:|”}, StringSplitOptions.RemoveEmptyEntries); //ss1[0]: “A|B” //ss1[1]: “C:D”

ss1 = s.Split(new[] { “|:|” }, StringSplitOptions.None); //ss1[0]: “A|B” //ss1[1]: “C:D” //ss1[2]: “”

首先我们看下String.Split 方法有6个重载函数:

1) public string[] Split(params char[] separator) 2) public string[] Split(char[] separator, int count) 3) public string[] Split(char[] separator, StringSplitOptions options) 4) public string[] Split(string[] separator, StringSplitOptions options) 5) public string[] Split(char[] separator, int count, StringSplitOptions options) 6) public string[] Split(string[] separator, int count, StringSplitOptions options)

下边我们通过一些实例来说明下怎么使用(下面string words = “1,2.3,,4”;):

1. public string[] Split(params char[] separator)

程序代码

string[] split = words.Split(new Char[] { ‘,’ });//返回:{“1″,”2.3″,””,”4″} string[] split = words.Split(new Char[] { ‘,’, ‘.’ });//返回:{“1″,”2″,”3″,””,”4″}

2. public string[] Split(char[] separator, int count)

程序代码

string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, 2);//返回:{“1″,”2.3,,4”} string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, 6);//返回:{“1″,”2″,”3″,””,”4″}

3. public string[] Split(char[] separator, StringSplitOptions options)

程序代码

string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, StringSplitOptions.RemoveEmptyEntries);//返回:{“1″,”2″,”3″,”4”} 不保留空元素 string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, StringSplitOptions.None);//返回:{“1″,”2″,”3″,””,”4″} 保留空元素

4. public string[] Split(string[] separator, StringSplitOptions options)

程序代码

string[] split = words.Split(new string[] { “,”, “.” }, StringSplitOptions.RemoveEmptyEntries);//返回:{“1″,”2″,”3″,”4”} 不保留空元素 string[] split = words.Split(new string[] { “,”, “.” }, StringSplitOptions.None);//返回:{“1″,”2″,”3″,””,”4″} 保留空元素

5. public string[] Split(char[] separator, int count, StringSplitOptions options)

程序代码

string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{“1″,”2.3,,4”} 不保留空元素 string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, 6, StringSplitOptions.None);//返回:{“1″,”2″,”3″,””,”4″} 保留空元素

6. public string[] Split(string[] separator, int count, StringSplitOptions options)

程序代码

string[] split = words.Split(new string[] { “,”, “.” }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{“1″,”2.3,,4”} 不保留空元素 string[] split = words.Split(new string[] { “,”, “.” }, 6, StringSplitOptions.None);//返回:{“1″,”2″,”3″,””,”4″} 保留空元素

个人理解:Split 就是和String.Join相反的一个函数 它的作用是把一个字符串分隔成含有多个字段的数组

我如今仅仅对上面的一种方法进行分析:

string[] split = words.Split(new Char[] { ‘,’, ‘.’ }, 6);//返回:{“1″,”2″,”3″,””,”4″}

为什么返回的有了个空的“” 呢,自己当时也是不理解

事实上它就是以” , ” 和“ . ” 两个分隔符来拆分 字符串 1,2.3,,4的 当找到 3 后面的第一个”, “ 时候说明此处要分开了

可是它后面又是一个分隔符 ”, ” 怎么办呢 这是就仅仅能当成 ” ” 空来处理了 你能够变相的把 1,2.3,,4连续的两个” , “间 觉得有个空格符“ “也能够。不正确的地方请大家帮指出来 不胜感激 。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119255.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C#-split函数的使用
split函数的作用是用来分割字符串,通常我们采用的是用什么字符来分割字符串,以达到获取我们想要的字符串,函数的返回值为数组。
kdyonly
2023/03/03
1.2K0
c#中分割字符串的方法
c#中分割字符串的方法 第一种方法:打开vs.net新建一个控制台项目。然后在Main()方法下输入下面的程序。      string s="abcdeabcdeabcde";       string[] sArray=s.Split(''c'');       foreach(string i in sArray)       Console.WriteLine(i.ToString());        输出下面的结果:ab                       deab         
阳光岛主
2019/02/19
1.1K0
【C#每日一题】统计单词数并找出频率最高的单词
德宏大魔王
2023/08/08
2740
【C#每日一题】统计单词数并找出频率最高的单词
C#版(击败100.00%的提交) - Leetcode 151. 翻转字符串里的单词 - 题解
151.Reverse Words in a String 在线提交: https://leetcode-cn.com/problems/reverse-words-in-a-string/
Enjoy233
2019/03/05
6820
【新手笔记】关于Split方法
企鹅号小编
2018/01/05
1.8K0
【新手笔记】关于Split方法
C# 字符串操作详解
作用:判断传入的字符串是不是当前字符串的开头,可设置比较类型(二进制比较、忽略语言文化比较、按当前线程的语言文化比较)
郑小超.
2018/08/01
1.6K0
C# 字符串操作详解
Python3 与 C# 基础语法对比(String专栏)
Python3 与 C# 基础语法对比:https://www.cnblogs.com/dotnetcrazy/p/9102030.html
逸鹏
2018/07/23
7300
Python3 与 C# 基础语法对比(String专栏)
JavaScript split() 方法
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
默 语
2024/11/20
1450
Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
武培轩
2018/09/28
4460
LeetCode 557 Reverse Words in a String III
首先按照空格对字符串进行分隔,然后将每个单词进行翻转后再拼接回字符串即可,需要注意拼接时记得加空格,但最后一个单词不需要加。
一份执着✘
2018/12/14
5600
Python3 与 C# 基础语法对比(String专栏)
Python3 与 C# 基础语法对比:https://www.cnblogs.com/dotnetcrazy/p/9102030.html
逸鹏
2018/06/01
5840
Python3 与 C# 基础语法对比(String专栏)
常用C#代码「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195508.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/30
2.7K0
常用C#代码「建议收藏」
C# 字符串排序时指定偏好的排列顺序
不知道大家有没有遇到过某些字符串数据在显示到界面上时需要按一定顺序排列的情况,如果内容是数值或字母自然好办,默认的排序功能就搞定了。那么如果是中文字符串呢?本文将会提供一个能在调用 OrderBy 方法时传入的字符串比较器,能够在一定程度上指定你偏爱的排列顺序,下面就一起来看看吧。
独立观察员
2023/09/02
4550
C# 字符串排序时指定偏好的排列顺序
C3第 1 节: 泛型集合及练习
1 C3第 1 节: 泛型集合及练习 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace 泛型键值对的练习 9 { 10 class Program 11 { 12 static void Main(string[] args) 1
静心物语313
2020/03/24
5010
.NET斗鱼直播弹幕客户端(上)
现在直播平台由于弹幕的存在,主播与观众可以更轻松地进行互动,非常受年轻群众的欢迎。斗鱼TV就是一款非常流行的直播平台,弹幕更是非常火爆。看到有不少主播接入 弹幕语音播报器、 弹幕点歌等模块,这都需要首先连接斗鱼弹幕。
梁规晓
2019/10/15
1K0
.NET斗鱼直播弹幕客户端(上)
C# ini文件操作【源码下载】
来源:http://www.cnblogs.com/polk6/p/6052908.html
跟着阿笨一起玩NET
2018/09/20
1.2K0
C# ini文件操作【源码下载】
C# 基础知识系列- 9 字符串的更多用法(一)
在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作。
程序员小高
2020/04/29
1K0
C2第 1 节值类型引用类型介绍和字符串练习
C2第3节ref和out、装箱与拆箱 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 装箱拆箱
静心物语313
2020/03/24
4880
Python3 与 C# 基础语法对比(String专栏-新排版)
在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master
逸鹏
2018/07/23
1.7K0
Python3 与 C# 基础语法对比(String专栏-新排版)
Excel催化剂开源第12波-VSTO开发遍历功能区所有菜单按钮及自定义函数清单
在插件开发过程中,随着功能越来越多,用户找寻功能入口将变得越来越困难,在Excel催化剂 ,将采用遍历所有功能的方式,让用户可以轻松使用简单的查找功能找到想要功能所在位置,查找的范围有:功能按钮的显示名称、功能说明等。
Excel催化剂
2021/08/19
9460
推荐阅读
相关推荐
C#-split函数的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档