作为对泛型的支持,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. 多媒体文件格式分析 MP3文件结构及编解码流程

    多媒体文件格式分析 http://blog.csdn.net/taniya001/article/details/7962864 多媒体文件格式分析 MP3文件结构及编解码流程 http://www. ...

  2. DNS原理浅析

    DNS概念 DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址.你可以把它想象成一本巨大的电话本. 查询过程 dig命令: 虽然DNS作用非常简单,但是查 ...

  3. DNSmasq安装配置

    dns安装配置yum -y install dnsmasq dns配置文件vi /etc/dnsmasq.confresolv-file=/etc/resolv.dnsmasq.confaddn-ho ...

  4. ThinkPHP5显示数据库字段内容

    1.在application文件夹下面的config.php中打开DEBUG. 2.修改tp5/application/index/controller/Index.php内容. <?php n ...

  5. 20145313张雪纯 《Java程序设计》第9周学习总结

    20145313张雪纯 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无需接 ...

  6. java第一周学习总结

    学号20145336 <Java程序设计>第1周学习总结 教材学习内容总结 java是sun推出的一门高级编程语言,现已经成为web开发的首选语言.他分为三种技术架构,j2ee针对web应 ...

  7. [BZOJ4552]排序

    Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这 ...

  8. vscode + angular

    0.在命令行中,cd到项目下执行: npm install 1.调试->启动调试->node.js, 会生成.vscode/launch.json文件 2.修改launch.json文件& ...

  9. Java单链表反转 详细过程

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guyuealian/article/details/51119499 Java单链表反转 Java实 ...

  10. Extjs的form跨域提交文件时,无法获取返回结果

    form文件表单跨域提交时,无法获取远程服务器的返回结果,form提交代码如下: form.submit({ url:'http://{remoteUrl}/hgisserver/wrds/file' ...