作为对泛型的支持,TStringHelper.Split方法理所应当地出现了。

示例代码1:

var
  iText: string;
  iAStr: TArray<string>;
  I: Integer;
begin
  iText := ‘白内障超声乳化/白内障小切口/ECCE/人工晶体植入术/翼状胬肉切除/角膜缘干细胞移植术/青
光眼手术/眼睑内翻矫正术/泪囊置管术/鼻腔泪囊吻合术’;
  iAStr := iText.Split(['/'], TStringSplitOptions.None);
  for I := Low(iAStr) to High(iAStr) do
    ListBox1.Items.Add(iAStr[I]);

end;

代码执行后的结果(显示在ListBox1中):

白内障超声乳化

白内障小切口

ECCE

人工晶体植入术

翼状胬肉切除

角膜缘干细胞移植术

青光眼手术

眼睑内翻矫正术

泪囊置管术

鼻腔泪囊吻合术

成功分割字符串。在测试字符串的首尾都没有'/'。

示例代码2:

var
  iText: string;
  iAStr: TArray<string>;
  I: Integer;
begin
  iText := ‘白内障超声乳化’;
  iAStr := iText.Split(['/'], TStringSplitOptions.None);
  for I := Low(iAStr) to High(iAStr) do
    ListBox1.Items.Add(iAStr[I]);
end;

代码执行后的结果(显示在ListBox1中):

白内障超声乳化

虽然没有出现'/',但是返回了整个字符串。其中,TStringSplitOptions的两个值:None和ExcludeEmpty没有在这个例子中看出区别,易博龙也很不厚道,在其官方帮助中也没有找到关于这两个值的具体用法。究其英文意思,None不会排除空字符(''),ExcludeEmpty则会排除空字符('')。

注意:

Split方法不会改变字符串本身;Split有多个重载方法,其中亦可以指定取字符串的数量。

示例代码3:

var
  iText: string;
  iAStr: TArray<string>;
  I: Integer;
begin
  iText := '';
  iAStr := iText.Split(['/'], TStringSplitOptions.ExcludeEmpty);
  ListBox3.Items.Add('Low = '+Low(iAStr).ToString);
  ListBox3.Items.Add('High = '+High(iAStr).ToString);
  for I := Low(iAStr) to High(iAStr) do
    ListBox1.Items.Add(iAStr[I]);
end;

我的代码中出现了示例代码3的情况,程序从DB Field中读取出来的内容是''字符串时,我原以为iAStr仍会被赋值(iAStr[0]=''),为了验证,我写了示例代码3。ListBox1中的显示结果:

Low = 0

High = -1

这个结果出乎我意料,但说明了之后的for循环不会进行,也就很好说明了我项目代码中所担心的问题不会发生。之所以我所担心的问题不会发生是因为参数“TStringSplitOptions.ExcludeEmpty”,它排除了''字符串,所以不会给泛型字符串数组iAStr赋值。

TStringHelper.Split的更多相关文章

  1. Delphi分割字符串函数Split源码

    function TStringHelper.Split(const Separator: array of string; Count: Integer; Options: TStringSplit ...

  2. Delphi TStringHelper用法详解

    Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...

  3. Delphi XE4 TStringHelper用法详解

    原文地址:Delphi XE4 TStringHelper用法详解作者:天下为公 Delphi XE4的TStringHelper,对操作字符串进一步带来更多的方法,估计XE5还能继续用到. Syst ...

  4. 表值函数与JS中split()的联系

    在公司用云平台做开发就是麻烦 ,做了很多功能或者有些收获,都没办法写博客,结果回家了自己要把大脑里面记住的写出来. split()这个函数我们并不陌生,但是当前台有许多字段然后随意勾选后的这些参数传递 ...

  5. join和split的区别

    join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. <script> var a=new Array(); a[0]="XHTML&quo ...

  6. c#使用Split分割换行符 \r\n

    c# 使用Split分割 换行符,方法如下(其余方法有空再添加):   string str = "aa" + "\r\n" + "bb"; ...

  7. JavaScript中的slice,splice,substr,substring,split的区别

    万恶的输入法,在sublime中会显示出繁体字,各位看官见谅. 1.slice()方法:该方法在数组和string对象中都拥有. var a = [1,2,3,4,5,6]; var s = 'thi ...

  8. split和join的用法

    第一点:split 直接举例子,比较直观, >>> f = 'www.baidu.com.cn' >>> f.split()['www.baidu.com.cn'] ...

  9. [LeetCode] Split Array Largest Sum 分割数组的最大值

    Given an array which consists of non-negative integers and an integer m, you can split the array int ...

随机推荐

  1. JVM调优总结(转)

    本文转自:http://my.oschina.net/xishuixixia/blog/132395 常用的调优参数. 1.堆大小 -Xms和-Xmx用于指定堆大小,我们需要将他们俩设置为一样的值,以 ...

  2. Linux查看本机登陆用户信息(w、who、last和lastlog命令)

    w 命令 查看 Linux 服务器上目前已经登录的用户信息 [root@localhost ~]# w :: up :, users, load average:0.00, 0.00, 0.00 US ...

  3. C++文件操作:打开文件和写入文件

    如果程序的运行结果仅仅显示在屏幕上,当要再次查看结果时,必须将程序重新运行一遍:而且,这个结果也不能被保留. 如果希望程序的运行结果能够永久保留下来,供随时查阅或取用,则需要将其保存在文件中. 文件分 ...

  4. PHP(Mysql/Redis)消息队列的介绍及应用场景案例

    在进行网站设计的时候,有时候会遇到给用户大量发送短信,或者订单系统有大量的日志需要记录,还有做秒杀设计的时候,服务器无法承受这种瞬间的压力,无法正常处理,咱们怎么才能保证系统正常有效的运行呢?这时候我 ...

  5. Visual Studio 2015 初体验

    据微软介绍每次发布的新版本,都承载着为开发者提供最高效的Visual Studio开发体验的使命.Visual Studio 2015亦延续了这一趋势,为开发者带来了进一步的生产力创新,包括调试和诊断 ...

  6. JavaScript常用工具方法封装

    因为工作中经常用到这些方法,所有便把这些方法进行了总结. JavaScript 1. type 类型判断 isString (o) { //是否字符串 return Object.prototype. ...

  7. JavScript 日期格式化

    JavScript 日期格式化 //日期格式化 function formatDate(date,fmt) { if(date == null || typeof (date) == undefine ...

  8. Phred-scale quality scores的相关内容

    phred-scale quality score起源于人类基因组计划,最初是用来评估碱基质量分数,后来,被广泛的推广到基因领域的其他内容. phred-scalequality score表示这件事 ...

  9. angularjs 整合bootstrap 时间控件

    一.引入js <link href="${basePath}/static/plugin/bootstrap/css/bootstrap-datetimepicker.min.css& ...

  10. Sql Server数据库链接字符串参数说明

               DataSource,//要连接到的 SQL Server 实例的名称或网络地址              FailoverPartner,//在主服务器停机时要连接到的伙伴服务 ...