参考: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字符串的基本操作与常用函数的更多相关文章

  1. db2字符串截取方法及常用函数

    select substr(index_code, 1, locate('-', index_code)-1) from report_data substr(str,m,n)表示从str中的m个字符 ...

  2. C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  3. MySQL:基本操作与常用函数

    基本操作 这里的基本操作为添加.修改.删除数据表中的记录. INSERT语句 -- 通用INSERT: INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, . ...

  4. linux内核里的字符串转换 ,链表操作常用函数(转)

    1.对双向链表的具体操作如下: list_add ———向链表添加一个条目 list_add_tail ———添加一个条目到链表尾部 __list_del_entry ———从链表中删除相应的条目 l ...

  5. Object-C 语法 字符串 数组 字典 和常用函数 学习笔记

    字符串 //取子字符串 NSString *str1=@"今天的猪肉真贵,200块一斤"; NSString *sub1=[str1 substringFromIndex:4]; ...

  6. c++ 11字符串与string转换常用函数

    这里主要介绍一下string to int 其他方法与这个类似,可到头文件 <string> 中查看 @_Str 转换的字符串 @_Idx 转换的长度(位数) @_Base 进制 doub ...

  7. python常用函数年初大总结

    1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到o ...

  8. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

    怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...

  9. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

随机推荐

  1. Sqli-LABS通关笔录-17-审计SQL注入

    这个关卡开始好像进入新的知识区了,前面几个是让我们加深对盲注的印象.接下来又是新知识了!皮卡丘,接招吧! 代码是从SQL-libs的第十七关卡扣的. 页面效果如下所示: PHP面完整CODE如下所示: ...

  2. 剑指Offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.   思路: 这个题是想得到一个时间复杂度为O(1)的min函数,所以应用一个辅助栈,压的时候,如果A栈的压入比B栈压入 ...

  3. hiho #1325 : 平衡树·Treap

    #1325 : 平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? ...

  4. Mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

    安装mysql后,启动时候没有启动成功,查看了下日志报错如下:---------------------------------------------1   可以:初始化mysql:mysql_in ...

  5. FlexPaper使用小结

    FlexPaper相关介绍及后台swf生成,参见 FlexPaper实现文档在线浏览(附源码) 前台swf在flash中的预览: 1.下载相关文档 FlexPaper Classic 2.将下载的文件 ...

  6. POJ 2676

    http://poj.org/problem?id=2676 深搜的题目. 题意呢就是一个数独的游戏,应该都知道规则. 思路:我的思路很简单,就是用数组来判断某个数字是否可以使用,而每一个数字都由三个 ...

  7. perl文件句柄的传递

    perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,&quo ...

  8. Git-windows安装包

    下载地址 http://192.168.168.230/sw-search-sp/soft/4e/30195/Git-2.7.2-32-bit_setup.1457942412.exe 来自为知笔记( ...

  9. JS里设定延时:js中SetInterval与setTimeout用法

     js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...

  10. QT Creator调用动态链接库实例

    #include<iostream> #include <QLibrary> using namespace std; int main() { cout<<&qu ...