C# 分隔字符串成为字符串数组的方法(保留分隔符)
要求如下:
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# 分隔字符串成为字符串数组的方法(保留分隔符)的更多相关文章
- 伪数组(arguments及字符串)转数组的方法 贼简单
超简单的伪数组转数组的方法, 简单到令人发指! (这里伪数组使用arguments) 1.使用 Array.prototype.slice Array.prototype.slice.call(arg ...
- php实现根据字符串生成对应数组的方法
先看看如下示例: <?php $config = array( 'project|page|index' => 'content', 'project|page|nav' => ar ...
- JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...
- JavaScript 数组、字符串、Map、Set 方法整理
在线阅读 https://www.kancloud.cn/chenmk/web-knowledges/1080519 数组 isArray():Array.isArray(value) 用于检测变量是 ...
- JS解析json数据并将json字符串转化为数组的实现方法
json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...
- php 依据字符串生成相应数组方法
php 依据字符串生成相应数组方法 比如: <?php $config = array( 'project|page|index' => 'content', 'project|page| ...
- javascript---关于字符串和数组的方法
在学习javascript过程中,遇到过很多关于数组和字符串的一些操作.之前也总结了不少方法,可是一遇到自己用的时候,就忘了.不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次 ...
- 记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式
记录自己在工作中,时不时使用,每次都要去查一下的基础方法.以及ES6经常使用的方法 一.Array 1.concat 合并数组 2.shift 获取数组第一个元素 unshift 向数组首位添加一个元 ...
- 从零开始的全栈工程师——js篇2.13(字符串与数组的方法)
基类Object的子类有 Function Array Number Boolean String Date Math RegExp 函数 数组 数字 布尔 字符串 日期 算数 正则 都 ...
- C++ Primer 5th 第3章 字符串、向量和数组
*****代码在Debian g++ 5.40 / clang++ 3.8(C++11)下编写调试***** 本章主要是关于字符串.数组的内容,以及一些简单的容器知识. 1.using的声明 usin ...
随机推荐
- asp访问数据库原理以及代码
ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术.可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Co ...
- Oracle学习笔记——常用函数总结
在平时写PL/SQL的时候,经常要用到很多系统自带的函数,而这些函数用起来非常好用,但是每次用完以后,就又忘到脑后了,为了加深自己的映象,以及对这些函数做一个全面的总结,就有了今天这篇文章. 首先这就 ...
- Java回忆录之英勇黄铜V
说实话最近心好累,就因为一个混合app开发贼简单的一个功能.我本以为很简单,做起来却发现需要很多知识面.麻雀虽小五脏俱全,即使再小的一个功能实现起来也需要很全面的知识来担保.要想盖高楼大厦啊必定要有坚 ...
- ZBrush 4R7中为笔刷设置快捷键
为了便于雕刻.提高雕刻速度,ZBrush®不仅很人性化地设计了自定义笔刷,用户还可以自行设置笔刷快捷键,步骤如下. ZBrush 4R8下载:http://wm.makeding.com/iclk/? ...
- css3之BFC、IFC、GFC和FFC
CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. What's FC?一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念.它 ...
- 工作流Activiti学习地址
http://blog.csdn.net/xnf1991/article/details/52610277
- Jquery 过滤器(first,last,not,even,odd)的使用和区别
Jquery 过滤器主要有first,last,not,even,odd等等,它们分别表示: 代码如下: $(function(){ $("#menu li:first").cli ...
- Proxychains安装
没有管理员权限 1.建立文件夹proxychains,并进入下载 mkdir proxychains cd proxychains wget https://sourceforge.net/proje ...
- jpa自定义条件分页查询
主要依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- CORS与JSONP的区别
CORS与JSONP: a. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. b. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSON ...