热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Splite函数

Splite是用得很多的字符串方法。自己来实现一下。CodepublicstaticListSplite(stringsrc,charpatChar){List
Splite 是用得很多的字符串方法。
自己来实现一下。

ContractedBlock.gifExpandedBlockStart.gifCode
   public static List<string> Splite(string src,char patChar)
        {
            List
<string> result &#61; new List<string>();
            
if (string.IsNullOrEmpty(src))
            {
                
return null;
            }
            
else
            {
                
int endIndex &#61; 0;
                
int frontIndex &#61; -1;
                
while (endIndex<src.Length)
                {
                    
if (src[endIndex] !&#61; patChar)
                    {
                       
                    }
                    
else 
                    {
                        
string temp &#61; string.Empty;
                        
if (endIndex - frontIndex - 1 > 0)
                        {
                            temp 
&#61; src.Substring(frontIndex &#43; 1, endIndex - frontIndex-1);
                        }
                            result.Add(temp);
                            frontIndex 
&#61; endIndex;
                        
                    }

                    endIndex
&#43;&#43;;
                }

                
if (frontIndex <&#61;src.Length-1)
                {
                    
string temp&#61;string.Empty;
                    
if (frontIndex &#43; 1 <&#61; src.Length - 1)
                    {
                        temp 
&#61; src.Substring(frontIndex &#43; 1);
                    }
                    result.Add(temp);
                }


                
return result;
            }
           
        }

        
public static string[] SpliteArray(string src, char patChar)
        {
           
            List
<string> re&#61; Splite(src,patChar);
            
if (re !&#61; null)
            {

                
return re.ToArray();
            }
            
else
            {
                
return null;
            }

        }

单元测试如下:

ContractedBlock.gifExpandedBlockStart.gifCode
/// 
        
///Splite 的测试
        
///

        [TestMethod()]
        
public void SpliteTest()
        {
            
string[] srcList &#61;
            {
                
"i  love this game",
                
" i  love this game",
                
"  i  love this game",
                
"i  love this game ",
                
"i  love this game  ",
                
"i  love this  game",
                
"i  love  this game   ",
                
"  i  love  this game  ",
                
"   i  love  this game   ",
                
"i  love  this game",
                
"   i  love  this  game   ",
            
            };

            
foreach (string src in srcList)
            {
                
                
string[] expected &#61; src.Split(&#39; &#39;);
                
string[] actual;
                actual 
&#61; StringMagic.SpliteArray(src, &#39; &#39;);

                
bool equal &#61; true;
                
for (int i &#61; 0; i < expected.Length; i&#43;&#43;)
                {
                    
if (expected[i] !&#61; actual[i])
                    {
                        equal 
&#61; false;
                        
break;
                    }
                }
                Assert.AreEqual(equal, 
true);
            }
        }

转:https://www.cnblogs.com/netfuns/archive/2009/09/12/1565599.html



推荐阅读
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • 本文介绍了如何使用OpenXML按页码访问文档内容,以及在处理分页符和XML元素时的一些挑战。同时,还讨论了基于页面的引用框架的局限性和超越基于页面的引用框架的方法。最后,给出了一个使用C#的示例代码来按页码访问OpenXML内容的方法。 ... [详细]
author-avatar
LuoXR小堇_137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有