在Delphi中,怎么查找字符串

在Delphi中,怎么查找字符串,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

如:要查找字符中的某一个或几个字符,语句该怎么写

再如: 想知道字符串中首部或尾部的字符是不是‘>’,这样语句又该怎么写?

各位高手帮帮忙!

解析:

使用pos函数来查找字符第一次出现的位置

pos(要查找的字符串,在字符串中查找)

var

str1:string;

i,j:integer;

begin

str1:='dsf4654f6<ds>ad' ;

j:=pos('<',str1);在字符串str1中查找"<"

if j<>0 then 得到的j是字符串中出现的位置,是整型

showmessage('<'+'在第'+inttostr(j)+'个位置');

end;

var

    {s:ansistring;}

    s,ss:string;

    w:array[0100] of string[30];

    c:array[01000] of char;

    i,j,k,m,n:integer;

begin

    s:='abc   def  ghi  8678, jklmn  ';

    { 文本s中包括英文大小写字母、英文标点、数字和空格,并以星号""结束 }

    n:=length(s);

    for i:=1 to n do c[i]:=s[i];  

    {以上3行为模拟输入,将串s的内容转换到字符数组c中}

 

    ss:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

    c[0]:=' ';

    k:=0;

    for i:=1 to 1000 do 

        if c[i]='' then begin n:=i; break; end; 

        {确定输入字符个数n}

    for i:=1 to n do 

        if pos(c[i],ss)>0 then begin m:=i; break; end; 

        {确定第一个单词的第一个字符位置m}

    for i:=m to n do begin

        if (pos(c[i],ss)=0)and(pos(c[i-1],ss)>0) 

then begin inc(k); w[k]:=''; end

else if pos(c[i],ss)<>0 then w[k]:=w[k]+c[i]; 

        {只有当前字母为非英文字母且前一个字母为英文字母时,单词数加一}

    end;

    writeln(k);

    for i:=0 to k-1 do writeln(w[i]);

end

解决这个问题有两种办法:

1、用正则表达式,标记出所有数字,然后取出。

//正则对象

var

uChecker: TRegExpr;

//创建正则,并装载匹配规则。

uChecker:= TRegExprCreate;

uCheckerExpression:= '\d[\\d]';

if uCheckerExec(r_Name) then

sStr:= uCheckerMatchPos[1]; //匹配结果

2、用字符串替换函数将所有字母替换

procedure TForm1Button1Click(Sender: TObject);

const

c_Str = 'abc423sdfbc'; //这常量是你要处理的字符串,可以自行修改

var

i: Integer;

sStr: string;

begin

//将所有字母替换为空

for i := ord('A') to ord('Z') do

sStr:= StringReplace(c_Str, Char(i), '', [rfReplaceAll]);

for i := ord('a') to ord('z') do

sStr:= StringReplace(sStr, Char(i), '', [rfReplaceAll]);

ShowMessage(Format('字符串%s处理后为:%s', [c_Str, sStr]));

end;

自己选择吧。PS:下面这个帖子的分你还没给呢。

>

以上就是关于在Delphi中,怎么查找字符串全部的内容,包括:在Delphi中,怎么查找字符串、delphi 怎么判断字符串里有几个英文单词、delphi 取出一段字符串的整数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9558549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存