Delphi字符串的基本操作与常用函数
参考:http://www.cnblogs.com/pchmonster/archive/2011/12/16/2290034.html
结合这个博客一起学习:http://www.cnblogs.com/xumenger/p/4427957.html
在实际编程中,这些操作会经常用到的。开始你不用着急全部记住它们,只要知道有这些功能就行,需要用到的时候能查到即可。
1、用 + 操作符实现字符串的连接
|
1
2
3
4
5
6
7
8
9
10
11
12
|
var X: Integer; S1: string; S2: string;begin S1 := 'Hello'; S2 := 'World'; ShowMessage(S1 + ' ' + S2); { 连接了三个字符串S1,S2,和空格字符串} X := 2011; ShowMessage('今年是 ' + IntToStr(X)); { IntToStr函数将整型转换为字符串类型}end; |
显示的消息框依次为:

2、脚标操作符[ ]
用脚标操作符可以从一个字符串中提取个别字符。
|
1
2
3
4
5
6
7
8
|
var S1: string; S2: string;begin S1 := 'Hello World'; S2 := S1[1]; ShowMessage(S2); { 将获取S1字符串的第一个字符H}end; |
字符串是从1开始的,字符串中的第一个字符是在S[1]中,短字符串(ShortString)的0元素(S[0])包含了字符串的长度,而不是字符串的第一个字符,在长字符串(AnsiString)和宽字符串(WideString)中不能存取X[0]。ShortString可以访问X[0]
注意:定义一个字符串
s: string;
进行赋值
s:= 'Text';
进行下面的测试可以知道s 是一个指针,而且所指向的地址是和 @s[1]一样的
ShowMessage(
IntToStr(Sizeof(s)) //这里显示的结果是 4
+IntToStr(s) + IntToStr(@s[1]) //这里输出的 s的值和 s[1]的地址是一样的
);
3、字符串中的控制字符
字符串常量( string literal or string constant)一般用两个单引号引起来,如果要字符串本身也有单引号,需要用两个单引号表示,如下:
|
1
2
3
4
5
|
'BORLAND' { BORLAND }'You''ll see' { You'll see }'''' { ' }'' { null string }' ' { a space } |
在字符串中可以嵌入控制字符,当需要在字符串中增加一些非打印字符时,这个功能是非常有用的。字符串中嵌入控制字符用以发送给串行设备。
用字符#就可以为字符串增加控制字符,例如:
|
1
2
3
4
5
6
7
8
|
var S1: string; S2: string;begin S1 := #89#111#117; S2 := 'You'; { 实际上S1和S2是一样} ShowMessage(S1 + #13#10 + S2); { #13#10表示换行回车carriage-return-line-feed}end; |
运行后显示效果如下:

4、用多行代码扩展字符串
用单引号引起来的字符串叫做字符串常量( string literal or string constant),其最多只能有255个字符。
为了增强可读性和可维护性,把一个字符串分成多行是必要的,需要用到+操作符,例如:
|
1
2
3
4
|
ShowMessage('This is very, very long message ' + 'that seems to go on and on forever. In order ' + 'to make the code more readable the message has ' + 'been split across several lines of code.'); |
5、字符串的比较
字符串比较操作符包括:=(等于)、<>(不等)、<(小于)、>(大于)、<=(小于或等于)、>=(大于或等于)。
这些操作符比较字符串都是基于ASCII数值。在大部分的情况下,只需要用等号来判别字符串是否等于一个定值或者不等于一个定值。例如:
|
1
2
3
4
5
6
7
8
9
|
var S1: string;begin S1 := 'Hello World'; if S1 = 'Hello World' then ShowMessage('相等') { 将显示“相等”的消息框} else ShowMessage('不相等');end; |
运行结果如下:

6、字符串操作的函数
基本常用的字符串操作函数都定义在System或者SysUtils单元中,我们就用一段范例讲解下基本常用的字符串函数的用法。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
const S1: ShortString = 'Hello World';var X: Integer; SP: PChar; S2: string; RS: string; { 显示最后的结果}begin SP := 'Pchar'; //copy函数获取从最后一个字符开始,共一个字符 S2 := Copy(S1, Length(S1), 1); { S2 = 'd'} RS := RS + S2 + #13#10; //删除字符串中指定位置字符的Delete函数 S2 := S1; Delete(S2, 1, 1); { S2 = 'ello World'} RS := RS + S2 + #13#10; //格式化字符串Format函数 S2 := Format('Time is : %d:%d:%d', [12, 15, 40]); { S2 = 'Time is : 12:15:40'} {%d表示将在这里放置一个整数,[2011]表示放置2011这个数值} RS := RS + S2 + #13#10; //数值转换为字符串InttoStr函数 X := 65535; S2 := IntToStr(X); { S2 = '65535'} RS := RS + S2 + #13#10; //获取字符串长度Length函数 X := Ord(S1[0]); { X = 11,Ord函数的作用:Char 类型与其编码值的转换} X := Length(S1); { 因为S1为ShortString类型,所以可以通过S1[0]来获取字符长度} RS := RS + IntToStr(X) + #13#10; //转化为小写LowerCase函数 S2 := LowerCase(S1); { S2 = 'hello world'} RS := RS + S2 + #13#10; //转化为大写UpperCase函数 S2 := UpperCase(S1); { S2 = 'HELLO WORLD'} RS := RS + S2 + #13#10; //返回指定字符重复的字符串 S2 := StringOfChar('A', 10); { S2 = 'AAAAAAAAAA'} RS := RS + S2 + #13#10; //StrPas把一个空结尾字符串(PChar或字符数组)转化为Pascal字符串 S2 := StrPas(SP); { S2 = 'Pchar'} RS := RS + S2 + #13#10; //StrPCopy把一个Pascal字符串转化为空结尾字符串 StrPCopy(SP, 'World Hello'); { SP = 'World Hello'} RS := RS + StrPas(SP) + #13#10; //Trim用于去除字符串前后的空格和控制字符,不能去掉中间的空格和控制字符 S2 := #13#10' Hello World '; S2 := Trim(S2); { S2 = 'Hello World'} RS := RS + S2 + #13#10; //StringReplace用于替换字符串中制定字符 S2 := 'AABBCC'; S2 := StringReplace(S2, 'A', 'E', [rfReplaceAll]); RS := RS + S2 + #13#10; ShowMessage(RS);end; |
运行结果如下:

以上代码均在Delphi7中测试成功。
Delphi字符串的基本操作与常用函数的更多相关文章
- db2字符串截取方法及常用函数
select substr(index_code, 1, locate('-', index_code)-1) from report_data substr(str,m,n)表示从str中的m个字符 ...
- C语言字符,字符串,字节操作常用函数
strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...
- MySQL:基本操作与常用函数
基本操作 这里的基本操作为添加.修改.删除数据表中的记录. INSERT语句 -- 通用INSERT: INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, . ...
- linux内核里的字符串转换 ,链表操作常用函数(转)
1.对双向链表的具体操作如下: list_add ———向链表添加一个条目 list_add_tail ———添加一个条目到链表尾部 __list_del_entry ———从链表中删除相应的条目 l ...
- Object-C 语法 字符串 数组 字典 和常用函数 学习笔记
字符串 //取子字符串 NSString *str1=@"今天的猪肉真贵,200块一斤"; NSString *sub1=[str1 substringFromIndex:4]; ...
- c++ 11字符串与string转换常用函数
这里主要介绍一下string to int 其他方法与这个类似,可到头文件 <string> 中查看 @_Str 转换的字符串 @_Idx 转换的长度(位数) @_Base 进制 doub ...
- python常用函数年初大总结
1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到o ...
- Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数
怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
随机推荐
- javascript,检测对象中是否存在某个属性
检测对象中属性的存在与否可以通过几种方法来判断. 1.使用in关键字. 该方法可以判断对象的自有属性和继承来的属性是否存在. var o={x:1}; "x" in o; //tr ...
- Qt 官方一键动态发布技能
苦找了好几天动态库,程序可以运行了,结果没有图标还是少了运行库很苦恼,发现Qt 官方有一键动态发布功能感觉自己萌萌的,来自qt吧亲测可用. 集成开发环境 QtCreator 目前生成图形界面程序 ex ...
- Codeforces Gym 101138 G. LCM-er
Description 在 \([a,b]\) 之间选择 \(n\) 个数 (可以重复) ,使这 \(n\) 个数的最小公倍数能被 \(x\) 整除,对 \(10^9+7\) 取膜. \(1\leqs ...
- 79 两个整数集合A和B,求其交集
[本文链接] http://www.cnblogs.com/hellogiser/p/ab-intersect.html [题目] 两个整数集合A和B,求其交集. [分析] 1. 读取整数集合A中 ...
- C# 静态函数调用窗体控件
回调函数方法是静态函数,需要调用窗体控件,赋值或取值. 定义 public static Form1 mainFrm; mainFrm = this; public partial class F ...
- 算法手记 之 数据结构(并查集详解)(POJ1703)
<ACM/ICPC算法训练教程>读书笔记-这一次补上并查集的部分.将对并查集的思想进行详细阐述,并附上本人AC掉POJ1703的Code. 在一些有N个元素的集合应用问题中,通常会将每个元 ...
- 理解和解决MySQL乱码问题【转】
本文来自:http://www.cnblogs.com/cenalulu/p/4325693.html 要了解为什么会出现乱码,我们就先要了解从客户端发起请求,到MySQL存储数据,再到下次从表取回客 ...
- ffmpeg-20160816-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- HDU 5879 Cure -2016 ICPC 青岛赛区网络赛
题目链接 题意:给定一个数n,求1到n中的每一项的平方分之一的累加和. 题解:题目没有给数据范围,而实际上n很大很大超过long long.因为题目只要求输出五位小数,我们发现当数大到一定程度时值是固 ...
- a标签的妙用-拨打电话、发送短信、发送邮件
前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...