Delphi如何得到字符串中同一字符的不同位置?
Delphi如何得到字符串中同一字符的不同位置?例如有一个字符串为“你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的”,我们如何才能得到字...
Delphi如何得到字符串中同一字符的不同位置?
例如有一个字符串为“你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的”,我们如何才能得到字符“+”的位置分别为10、21、33、46 呢?
Delphi如何得到字符串中某一字符所在的不同位置?
例如有一个字符串“你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的”中的字符“+”,如何得到它所在的位置分别为10、21、33、46 呢? 展开
例如有一个字符串为“你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的”,我们如何才能得到字符“+”的位置分别为10、21、33、46 呢?
Delphi如何得到字符串中某一字符所在的不同位置?
例如有一个字符串“你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的”中的字符“+”,如何得到它所在的位置分别为10、21、33、46 呢? 展开
1个回答
展开全部
pos循环比较一下就可以了。
procedure TForm1.Button1Click(Sender: TObject);
var
i,x : integer;
ResultStr,surStr : string;
begin
surStr := '你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的';
ResultStr:='字符出现在:';
x:=0;
//判断字符串出现源字符串的位置
while Surstr<>''do //源字符串为空,退出
begin
i := pos('+',SurStr);
if i >0 then
begin
x := x+i; //与出现的位置和累加
ResultStr := ResultStr+'第'+IntToStr(x)+'位,';
Delete(surStr,1,i); //删除前面比较过的数据
end else break; //比较结果小于等于0,退出
end;
showmessage(ResultStr);
{
//判断单字符在字符串中的位置
for i := 1 to Length(Surstr) do
begin
if SurStr[i]='+' then
ResultStr := ResultStr+'第'+IntToStr(i)+'位,';
end;
ShowMessage(ResultStr);
}
procedure TForm1.Button1Click(Sender: TObject);
var
i,x : integer;
ResultStr,surStr : string;
begin
surStr := '你在哪里D+7657saf4ds+qwerwerwe85+我们是545646+的';
ResultStr:='字符出现在:';
x:=0;
//判断字符串出现源字符串的位置
while Surstr<>''do //源字符串为空,退出
begin
i := pos('+',SurStr);
if i >0 then
begin
x := x+i; //与出现的位置和累加
ResultStr := ResultStr+'第'+IntToStr(x)+'位,';
Delete(surStr,1,i); //删除前面比较过的数据
end else break; //比较结果小于等于0,退出
end;
showmessage(ResultStr);
{
//判断单字符在字符串中的位置
for i := 1 to Length(Surstr) do
begin
if SurStr[i]='+' then
ResultStr := ResultStr+'第'+IntToStr(i)+'位,';
end;
ShowMessage(ResultStr);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询