Delphi 字符串函数

发布时间 2023-07-14 11:32:43作者: 冀未然

Delphi 字符串函数
StrUtils单元AnsiLeftStr、AnsiRightStr、AnsiMidStr、AnsiContainsStr、AnsiContainsText、AnsiStartsStr、AnsiStartsText、
AnsiEndsStr、AnsiEndsText、AnsiReplaceStr、AnsiReplaceText、AnsiResemblesText...
引用单元 StrUtils 非 SysUtils
AnsiLeftStr、AnsiRightStr、AnsiMidStr、AnsiContainsStr、AnsiContainsText、AnsiStartsStr、AnsiStartsText、AnsiEndsStr、AnsiEndsText、AnsiReplaceStr、
AnsiReplaceText、AnsiResemblesText、AnsiReverseString、AnsiMatchStr、AnsiMatchText、AnsiIndexStr、AnsiIndexText、PosEx
//从左右两端提取指定数目的字符串: AnsiLeftStr、AnsiRightStr
var
ss,s: AnsiString;
begin
ss := 'abcdefg';
s := AnsiLeftStr(ss, 2);
ShowMessage(s); {ab}

s := AnsiRightStr(ss, 2);
ShowMessage(s); {fg}
end;
//从指定位置开始提取指定长度的字符串: AnsiMidStr
var
ss,s: AnsiString;
begin
ss := 'abcdefg';
s := AnsiMidStr(ss,3,2);
ShowMessage(s); {cd}

s := AnsiMidStr(ss,3,20);
ShowMessage(s); {cdefg}
end;
//查找字符串: AnsiContainsStr、AnsiContainsText
var
ss,s: AnsiString;
b: Boolean;
begin
ss := 'Hello World';
s := 'hello';
b := AnsiContainsStr(ss,s); {区分大小写}
ShowMessage(BoolToStr(b)); {False}
b := AnsiContainsText(ss,s); {不区分大小写}
ShowMessage(BoolToStr(b)); {True}
end;
//判断一个字符串是不是另一个字符串的开始: AnsiStartsStr、AnsiStartsText
var
ss,s: AnsiString;
b: Boolean;
begin
ss := 'Hello World';
s := 'he';
b := AnsiStartsStr(s,ss); {区分大小写}
ShowMessage(BoolToStr(b)); {False}
b := AnsiStartsText(s,ss); {不区分大小写}
ShowMessage(BoolToStr(b)); {True}
end;
//判断一个字符串是不是另一个字符串的结尾: AnsiEndsStr、AnsiEndsText
var
ss,s: AnsiString;
b: Boolean;
begin
ss := 'Hello World';
s := 'ORLD';
b := AnsiEndsStr(s,ss); {区分大小写}
ShowMessage(BoolToStr(b)); {False}
b := AnsiEndsText(s,ss); {不区分大小写}
ShowMessage(BoolToStr(b)); {True}
end;
//替换字符串: AnsiReplaceStr、AnsiReplaceText
var
ss,strForm,strTo: AnsiString;
begin
ss := 'Hello World Hello World';
strForm := 'hello';
strTo := '';
ss := AnsiReplaceStr(ss, strForm, strTo); {区分大小写}
ShowMessage(ss); {Hello World Hello World}
ss := AnsiReplaceText(ss, strForm, strTo); {不区分大小写}
ShowMessage(ss); {
World * World}
end;
//判断两个字符串是不是相似: AnsiResemblesText
var
b: Boolean;
begin
b := AnsiResemblesText('abc','apc');
ShowMessage(BoolToStr(b)); {True 说明两个字符串相似}
{它到底依据什么? 我非常感兴趣, 在另一篇随笔里专题研究}
end;
//翻转字符串: AnsiReverseString
var
s: AnsiString;
begin
s := 'Hello';
s := AnsiReverseString(s);
ShowMessage(s); {olleH}
end;
//查找字符串数组: AnsiMatchStr、AnsiMatchText
var
arr: array[0..3] of string;
s: AnsiString;
b: Boolean;
begin
arr[0] := 'aaa';
arr[1] := 'bbb';
arr[2] := 'ccc';
arr[3] := 'ddd';

s := 'CCC';
b := AnsiMatchStr(s,arr); {区分大小写}
ShowMessage(BoolToStr(b)); {False}
b := AnsiMatchText(s,arr); {不区分大小写}
ShowMessage(BoolToStr(b)); {True}
end;
//查找字符串数组并返回子串的位置: AnsiIndexStr、AnsiIndexText
var
arr: array[0..3] of string;
s: AnsiString;
i: Integer;
begin
arr[0] := 'aaa';
arr[1] := 'bbb';
arr[2] := 'ccc';
arr[3] := 'ddd';

s := 'CCC';
i := AnsiIndexStr(s,arr); {区分大小写}
ShowMessage(IntToStr(i)); {-1, -1表示没找到}
i := AnsiIndexText(s,arr); {不区分大小写}
ShowMessage(IntToStr(i)); {2}
end;
//从第几个字符开始,搜索字串的位置 PosEx
var
ss,s: string;
i: Integer;
begin
ss := 'CodeGear Delphi 2007';
s := 'Gear';
i := PosEx(s,ss,4);
ShowMessage(IntToStr(i)); //5
end;