组织部--Split函数学习与运用

来源:互联网 发布:nba2kol奥尼尔隐藏数据 编辑:程序博客网 时间:2024/04/25 20:30

   在组织部项目做批量删除的时候,感受到了Splite这个“小”函数的强大,在此做个总结。


    Split()函数是干什么的?

   官方解释: Split()方法用于把一个字符串分割成下标从“0”开始的字符串数组;通俗理解:Split()函数就是一把剪刀,将长长的字符串剪碎,组成数组。

 

    Split()函数用在哪里?

    在.netjava语言中都包含该方法,在javascript中也非常常用,下面以在C#javascript中的运用做介绍。

 

    C#用法:

    expression.Split( [delimiter[, count[,compare]]])

    在”[]”中括号中的参数是可选参数,其中:

    Expression:包含子字符串和分隔符的字符串表达式。如果expression是一个长度为零的字符串("")Split则     返回一个空数组,即没有元素和数据的数组。

    Delimiter:用于标识子字符串边界的字符串字符,相当于用该参数来做分界,最终不包含在数组当中。

    Count:要返回的子字符串数,–1表示返回所有的子字符串。

    Compare:数字值,表示判别子字符串时使用的比较方式(不常用)

 

    示例:

    1

string s=mycnameciscvincent;string[] sArray=s.Split('c') ;foreach(string i in sArray)Console.WriteLine(i.ToString());

    输出下面的结果:
    my
    name
    is
    Vincent


    2、由多个字符充当分隔符:

string str="aaajbbbscccjdddseee"; string[] sArray=str.Split(new char[2] {'j','s'}); foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 

   输出结果:
    aaa
    bbb
    ccc
    ddd
    eee

   类似分隔方法以及Split()的重载参考:http://www.cnblogs.com/yugen/archive/2010/08/18/1802781.html

   

   在javascript中:

<script type="text/javascript">var str="How are you doing today?"document.write(str.split(" ") + "<br />")document.write(str.split("") + "<br />")document.write(str.split(" ",3))</script>

   使用方法竟然雷同。


   思考:这个方法可以在那些情况下使用?

    目前接触的Split()方法用在对复选框的处理上很到位,代替了for循环遍历,从而提高了系统的性能,具体用法展示如下:

   (1)在js中获取选中的行信息:
var selectRows = $("#dg").datagrid("getSelections");  //定义字符变量,用于将选中行的ID保存成字符串,并以特定符号分隔开    var strIds = "";    for (var i = 0; i < selectRows.length; i++) {        strIds += selectRows[i].ID + ",";    }    //循环切割strIds = strIds.substr(0, strIds.length - 1); //将该字符串传给Controller进一步操作$.post('/CityBasicInfo/DeleteCityBasicInfo?CityId=' + strIds, function (jsonObj)

  (2)在Controller中的处理:

var tempCityID = Request["CityId"];            //通过切割方式获得id            string[] City = tempCityID.Split(',');            bool result = false;
            //循环ID实现对DataGrid中多条数据的操作,优化方案参考下文            for (int i = 0; i < City.Length; i++)            {                CityBasicInfoViewModel cityBasic = new CityBasicInfoViewModel()                {                    CityID = new Guid(City[i]),                    IsEnable = 0,                    Operator = "zzh"                };                result = ICityBasic.DeleteCityBasicInfo(cityBasic);            }
           分析:明确使用","来进行分割,在JS方法中对于selectRow的拼接已经埋下了伏笔,而strids.substr(0,strlds.length-1)则将最后一个","巧妙的去掉,在Controller中通过split(‘,’)将每行的ID获取到,最终一个循环解决问题。

    优化:项目进行过程中,发现这样子会执行多次对于Service端的调用,不如直接将其以数组形式传到Service中,在B层进行Split操作,从而更加提高代码性能。

      

   一个小小的函数,通过在项目中遇见到查资料到最后的消化,这样子的学习过程很有乐趣也很深刻,在此分享给大家。

1 0