本实例是用AnsiMidstr()函数获取指定字符串中的单个字符,也可以获取指定长度的子字符串。运行结果如图5.10所示。
图5.10 判断某一字符是否在字符串中
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i,p:Integer;
begin
if (Edit1.Text='')or(Edit2.Text='') then
begin
ShowMessage('请把信息添全。');
end
else
begin
if Length(Edit2.Text)=1 then
begin
p:=Length(Edit1.Text);
for i:=1 to p do
begin
if Trim(Edit2.Text)=AnsiMidstr(Edit1.Text,i,1) then
begin
Label4.Caption:='在字符串中';
break;
end
else
begin
Label4.Caption:='不在字符串中';
end;
end;
end
else
ShowMessage('字符只能是单个字符。');
end;
end;
字符串是由数字、大写字母或小写字母组成
本实例是用StrToInt()函数来判断字符串是否由数字组成,当字符串不能由StrToInt()函数进行转换时,在异常处理中用Uppercase()和Lowercase()函数来判断字符串是由大写字符串还是小写字符串组成。运行结果如图5.11所示。
图5.11 判断字符串是由数字、大写字母或小写字母组成
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
Isstr : String;
begin
Isstr := Edit1.Text;
try
StrToInt(Isstr);
ShowMessage('由数字组成!');
except
if Isstr=Uppercase(Isstr) then
ShowMessage('由大写字母组成!')
else
if Isstr=Lowercase(Isstr) then
ShowMessage('由小写字母组成!')
else
ShowMessage('无法识别,可能是混杂型。')
end;
end;
字符串中的某一字符是否大写
本实例先用Ansiuppercase()函数将要查找的字符串转换成大写,然后用AnsiMidstr()函数在字符串中进行查找。运行结果如图5.12所示。
图5.12 判断字符串中的某一字符是否大写
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s,x:String;
i:Integer;
begin
s:=Ansiuppercase(Trim(Edit2.Text));
for i:=1 to Length(Trim(Edit1.Text)) do
begin
if Ansiuppercase(Trim(Edit2.Text))=AnsiMidstr(trim(Edit1.Text),i,1) then
begin
Label3.Caption:='有';
break;
end
else
Label3.Caption:='没有';
end;
end;
字符串中是否有小写字母
本实例是用length ()函数来获取字符串的总长度,再用自定义函数IsLower()对字符串中的每个字符进行判断,如果是小写字母,则返回True。运行结果如图5.13所示。
图5.13 判断字符串中是否有小写字母
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
n,i,islow : Integer;
begin
islow := 0;
s := Edit1.Text;
n := Length(s);
for i:=0 to n-1 do
if IsLower(s[i]) then
begin
islow := 1;
break;
end;
if islow>0 then
ShowMessage('该字符串中有小写字母')
else
ShowMessage('该字符串中没有小写字母');
end;
字符串中是否有指定的字符
本实例是用pos()函数来获取字符在字符串中的位置,如果返回的数字大于0,则表示该字符串中包含指定的字符,如果返回值为0,则不包含。运行结果如图5.14所示。
图5.14 判断字符串中是否有指定的字符
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
if pos(Edit2.Text,Edit1.Text)=0 then
ShowMessage('没有指定的字符')
else
ShowMessage('字符串中包含字符'+Edit2.Text);
end;
字符是否可以转换成整数
本实例是用StrToIntDef()函数来判断字符串是否为整数,如果字符串是整数,那么StrToIntDef(s,0)和StrToIntDef(s,1)将返回转换后的整数,如果字符串不是整数, StrToIntDef(s,0)将返回0,StrToIntDef(s,1)将返回1。运行结果如图5.15所示。
图5.15 判断字符是否可以转换成整数
主要代码如下:
function TForm1.IsIntStr(const S: String): Boolean;
begin
if StrToIntDef(S,0)=StrToIntDef(S,1) then
Result:=True
else
Result:=False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsIntStr(Edit1.Text) then
ShowMessage('可以转换成整数')
else
ShowMessage('不可以转换成整数');
end;
字符中是否有汉字
本实例是用Length()函数来获取字符串的长度,用Ord()函数来获取每个字符的ASCII码,当ASCII码的值大于$7F时,表示该字符是汉字的前一个字节,并用Copy()函数来获取当前的汉字。运行结果如图5.16所示。
图5.16 判断字符中是否有汉字
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
str,s,sj: String;
i: integer;
begin
str := trim(Edit1.Text);
i := 0;
while i< Length(str) do
begin
if ord(str[i]) > $7F then
begin
s := Copy(str,i,2);
sj :=sj+ '"'+s+'"';
i := i+2;
end
else i:=i+1;
end;
Label2.Caption := '在字符串中含有汉字'+sj;
end;
字符中是否有双字节
中文所用的字符全是双字节字符,英文所用的字节全是单字节字符,也就是mbSingleByte。本实例是用ByteType()函数返回字符串指定位置上的字符,如果不是mbSingleByte,则表示为双字节字符。运行结果如图5.17所示。
图5.17 判断字符中是否有双字节
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s,s1: String;
i : Integer;
begin
s := Edit1.Text;
i := 0;
while i
if (ByteType(S,i) <> mbSingleByte) then
begin
s1 := s1+ Copy(s,i,2)+' ';
i := i+2;
end
else
i:= i+1;
end;
Label2.Caption := Trim(s1);
end;
判数输入的字符串是否为整数
本实例是用库函数sign()来判断数字是否为整数,当传入的值小于0则返回?1,若传入的值大于0则返回1,否则返回0。在用sign()函数时,要在单元中加入Math单元。运行结果如图5.18所示。
图5.18 判数输入的字符串是否为整数
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
i : Integer;
begin
s:=Edit1.Text;
try
i:=StrtoInt(s);
if sign(i)=1 then //添加单元Math或 if i>0 then ...
Label2.Caption := '是正整数'
else
begin
if i=0 then
Label2.Caption := '是整数'
else
Label2.Caption := '非正整数';
end;
except
Label2.Caption := '输入无效';
end;
end;