TStringHelper.Split
作为对泛型的支持,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的更多相关文章
- Delphi分割字符串函数Split源码
function TStringHelper.Split(const Separator: array of string; Count: Integer; Options: TStringSplit ...
- Delphi TStringHelper用法详解
Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...
- Delphi XE4 TStringHelper用法详解
原文地址:Delphi XE4 TStringHelper用法详解作者:天下为公 Delphi XE4的TStringHelper,对操作字符串进一步带来更多的方法,估计XE5还能继续用到. Syst ...
- 表值函数与JS中split()的联系
在公司用云平台做开发就是麻烦 ,做了很多功能或者有些收获,都没办法写博客,结果回家了自己要把大脑里面记住的写出来. split()这个函数我们并不陌生,但是当前台有许多字段然后随意勾选后的这些参数传递 ...
- join和split的区别
join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. <script> var a=new Array(); a[0]="XHTML&quo ...
- c#使用Split分割换行符 \r\n
c# 使用Split分割 换行符,方法如下(其余方法有空再添加): string str = "aa" + "\r\n" + "bb"; ...
- JavaScript中的slice,splice,substr,substring,split的区别
万恶的输入法,在sublime中会显示出繁体字,各位看官见谅. 1.slice()方法:该方法在数组和string对象中都拥有. var a = [1,2,3,4,5,6]; var s = 'thi ...
- split和join的用法
第一点:split 直接举例子,比较直观, >>> f = 'www.baidu.com.cn' >>> f.split()['www.baidu.com.cn'] ...
- [LeetCode] Split Array Largest Sum 分割数组的最大值
Given an array which consists of non-negative integers and an integer m, you can split the array int ...
随机推荐
- Java程序运行在Docker等容器环境有哪些新问题
基本回答 一. 对于Java来说,Docker毕竟是一个较新的环境,其内存.CPU等资源限制是通过ControlGroup实现的.早期的JDK版本并不能识别这些限制,进而会导致一些基础问题. 1.如 ...
- Tomcat源码
1.Connector Container:Engine,Host,Context,Wrapper(责任链的设计模式) Valve: Tomcat 中一个最容易发现的设计模式就是责任链模式,这 ...
- selenium+python—HTML生成报告代码
Python自动化测试生成HTML测试报告 HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,他生成易于使用的HTML测试报告. Ubuntu放置位置:输入Pyt ...
- weblogic 清除缓存
清理缓存步骤如下: 1.前置条件:停止服务 2.找到下面3个目录,然后将里面的文件删除即可: ……/user_projects/domains/base_domain/servers/AdminSer ...
- oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...
- 关于URL和http协议,http消息格式
转自:http://crystal2012.iteye.com/blog/1447845 在WWW(全球资讯网)中想要连结到某个网页,便需要给浏览器一个位址,而URL在此的功能就是告知浏览器某个资源在 ...
- RocEDU.阅读.写作《乌合之众》(三)
第二卷 群体的意见与信念 第三章 群体领袖及其说服的手法 群体领袖 领袖对于群体十分重要,他是群体形成意见并取得一致的核心.他常常是个实干家而非思想家,信念极其坚定并且有自我牺牲的倾向.领袖具有非常专 ...
- 20145322第一次JAVA实验报告
20145322第一周JAVA实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的熟悉(Linux + Eclipse) 实验日期:2016.04.08 实 ...
- 跟着我一起学习大数据——Hadoop
hadoop配置文件:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.9.0/ 一:Hadoop简介 总结下起源于Nutch项目,社区 ...
- elasticsearch系列(六)备份
快照备份 1.创建文件仓库 1.1 在$ELASTICSEARCH_HOME/config/elasticsearch.yaml中增加配置 #这个路径elasticsearch必须有权限访问,这个路径 ...