要求如下:

source string: mmmmmmynameismickeym

separator: m

result string []: {"m", "m", "m", "m", "m", "m", "yna", "m", "eis", "m", "ickey", "m"}

思路分析:

1 判断 source string 是否包含 separator

1.1 若不包含,则将其包装为 string 数组返回

1.2 若包含,则进行下列操作

2 将 source string 转换为 char 数组

3 对数组每个字符依次进行检测(循环)

3.1 若不为分隔符,则先将内容存入临时 string 变量 temp

3.2 若为分隔符,则检测 temp 是否为空

  • 若 temp 不为空,则先将 temp 变量的值写入 result 数组

  • 将分隔符写入 result 数组

4 循环体外,检查 temp 变量是否为 null

  • 若不为空,则将其写入 result 数组

  • 返回 string 数组 result

代码:

// 需要引入命名空间
// using System;
// using System.Linq; static string[] splitString(string source_str, char separator) { //1. 判断 source string 是否包含 separator //1.1 string 中不包括分隔符 if (source_str.IndexOf(separator) == -1) { //为了返回原字符串,将其包成一个只有一项的string数组返回 string[] source_str_pack = new string[1];//试一试string[source_str] source_str_pack[0] = source_str; return source_str_pack; } //1.2 string 中包括分隔符 else { //2. 将 source_str 转换为 char 数组 char[] source = source_str.ToCharArray(); string temp = null; int resultID = 0; string[] result = new string[source.Length];//这样的结果会有大量的 null 元素,后面在返回结果前,进行处理去除无用的 null 元素 //3. 对数组每个字符依次进行检测 for (int i = 0; i < source.Length; i++) { //3.1 若不为分隔符,则先将内容存入临时 string 变量 temp if (source[i].Equals(separator) == false) { if (temp == null) { temp = ""; } temp = temp.Insert(temp.Length, source[i].ToString()); } //3.2 若为分隔符,则检测 temp 是否为空 else { //temp不为空,先将 temp 变量的值写入 result 数组 if (temp != null) { result[resultID] = temp; resultID++; temp = null; } //将分隔符写入 result 数组 result[resultID] = source[i].ToString(); resultID++; } } //4. 检查 temp 变量是否为 null //若不为空,先将其写入 result 数组 if (temp != null) { result[resultID] = temp; resultID++; temp = null; } //返回 string 数组 result //后面在返回结果前,进行处理去除无用的 null 元素 result = result.Where(s => !String.IsNullOrEmpty(s)).ToArray(); return result; } }

C# 分隔字符串成为字符串数组的方法(保留分隔符)的更多相关文章

  1. 伪数组(arguments及字符串)转数组的方法 贼简单

    超简单的伪数组转数组的方法, 简单到令人发指! (这里伪数组使用arguments) 1.使用 Array.prototype.slice Array.prototype.slice.call(arg ...

  2. php实现根据字符串生成对应数组的方法

    先看看如下示例: <?php $config = array( 'project|page|index' => 'content', 'project|page|nav' => ar ...

  3. JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

    指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...

  4. JavaScript 数组、字符串、Map、Set 方法整理

    在线阅读 https://www.kancloud.cn/chenmk/web-knowledges/1080519 数组 isArray():Array.isArray(value) 用于检测变量是 ...

  5. JS解析json数据并将json字符串转化为数组的实现方法

    json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...

  6. php 依据字符串生成相应数组方法

    php 依据字符串生成相应数组方法 比如: <?php $config = array( 'project|page|index' => 'content', 'project|page| ...

  7. javascript---关于字符串和数组的方法

    在学习javascript过程中,遇到过很多关于数组和字符串的一些操作.之前也总结了不少方法,可是一遇到自己用的时候,就忘了.不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次 ...

  8. 记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式

    记录自己在工作中,时不时使用,每次都要去查一下的基础方法.以及ES6经常使用的方法 一.Array 1.concat 合并数组 2.shift 获取数组第一个元素 unshift 向数组首位添加一个元 ...

  9. 从零开始的全栈工程师——js篇2.13(字符串与数组的方法)

    基类Object的子类有 Function  Array  Number  Boolean  String  Date  Math  RegExp 函数 数组 数字 布尔 字符串 日期 算数 正则 都 ...

  10. C++ Primer 5th 第3章 字符串、向量和数组

    *****代码在Debian g++ 5.40 / clang++ 3.8(C++11)下编写调试***** 本章主要是关于字符串.数组的内容,以及一些简单的容器知识. 1.using的声明 usin ...

随机推荐

  1. asp访问数据库原理以及代码

    ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术.可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Co ...

  2. Oracle学习笔记——常用函数总结

    在平时写PL/SQL的时候,经常要用到很多系统自带的函数,而这些函数用起来非常好用,但是每次用完以后,就又忘到脑后了,为了加深自己的映象,以及对这些函数做一个全面的总结,就有了今天这篇文章. 首先这就 ...

  3. Java回忆录之英勇黄铜V

    说实话最近心好累,就因为一个混合app开发贼简单的一个功能.我本以为很简单,做起来却发现需要很多知识面.麻雀虽小五脏俱全,即使再小的一个功能实现起来也需要很全面的知识来担保.要想盖高楼大厦啊必定要有坚 ...

  4. ZBrush 4R7中为笔刷设置快捷键

    为了便于雕刻.提高雕刻速度,ZBrush®不仅很人性化地设计了自定义笔刷,用户还可以自行设置笔刷快捷键,步骤如下. ZBrush 4R8下载:http://wm.makeding.com/iclk/? ...

  5. css3之BFC、IFC、GFC和FFC

    CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. What's FC?一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念.它 ...

  6. 工作流Activiti学习地址

    http://blog.csdn.net/xnf1991/article/details/52610277

  7. Jquery 过滤器(first,last,not,even,odd)的使用和区别

    Jquery 过滤器主要有first,last,not,even,odd等等,它们分别表示: 代码如下: $(function(){ $("#menu li:first").cli ...

  8. Proxychains安装

    没有管理员权限 1.建立文件夹proxychains,并进入下载 mkdir proxychains cd proxychains wget https://sourceforge.net/proje ...

  9. jpa自定义条件分页查询

    主要依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  10. CORS与JSONP的区别

    CORS与JSONP: a. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. b. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSON ...