参考: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);
X := 2011 ;
ShowMessage( '今年是 ' + IntToStr(X));
end ;
|
显示的消息框依次为:
2、脚标操作符[ ]
用脚标操作符可以从一个字符串中提取个别字符。
1
2
3
4
5
6
7
8
|
var
S1: string ;
S2: string ;
begin
S1 := 'Hello World' ;
S2 := S1[ 1 ];
ShowMessage(S2);
end ;
|
字符串是从1开始的,字符串中的第一个字符是在S[1]中,短字符串(ShortString)的0元素(S[0])包含了字符串的长度,而不是字符串的第一个字符,在长字符串(AnsiString)和宽字符串(WideString)中不能存取X[0]。ShortString可以访问X[0]
注意:定义一个字符串
进行赋值
进行下面的测试可以知道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'
'You' 'll see'
'' ''
''
' '
|
在字符串中可以嵌入控制字符,当需要在字符串中增加一些非打印字符时,这个功能是非常有用的。字符串中嵌入控制字符用以发送给串行设备。
用字符#就可以为字符串增加控制字符,例如:
1
2
3
4
5
6
7
8
|
var
S1: string ;
S2: string ;
begin
S1 := # 89 # 111 # 117 ;
S2 := 'You' ;
ShowMessage(S1 + # 13 # 10 + S2);
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' ;
S2 := Copy(S1, Length(S1), 1 );
RS := RS + S2 + # 13 # 10 ;
S2 := S1;
Delete(S2, 1 , 1 );
RS := RS + S2 + # 13 # 10 ;
S2 := Format( 'Time is : %d:%d:%d' , [ 12 , 15 , 40 ]);
RS := RS + S2 + # 13 # 10 ;
X := 65535 ;
S2 := IntToStr(X);
RS := RS + S2 + # 13 # 10 ;
X := Ord(S1[ 0 ]);
X := Length(S1);
RS := RS + IntToStr(X) + # 13 # 10 ;
S2 := LowerCase(S1);
RS := RS + S2 + # 13 # 10 ;
S2 := UpperCase(S1);
RS := RS + S2 + # 13 # 10 ;
S2 := StringOfChar( 'A' , 10 );
RS := RS + S2 + # 13 # 10 ;
S2 := StrPas(SP);
RS := RS + S2 + # 13 # 10 ;
StrPCopy(SP, 'World Hello' );
RS := RS + StrPas(SP) + # 13 # 10 ;
S2 := # 13 # 10 ' Hello World ' ;
S2 := Trim(S2);
RS := RS + S2 + # 13 # 10 ;
S2 := 'AABBCC' ;
S2 := StringReplace(S2, 'A' , 'E' , [rfReplaceAll]);
RS := RS + S2 + # 13 # 10 ;
ShowMessage(RS);
end ;
|
运行结果如下:
以上代码均在Delphi7中测试成功。
|
请发表评论