首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于字符串截取的有关问题

2012-02-29 
关于字符串截取的问题字符串如abc-edf-gh我要去的最后一个-后面的字符串gh有什么函数可以用吗环境de

关于字符串截取的问题
字符串如'abc-edf-gh'
我要去的最后一个'-'后面的字符串'gh'

有什么函数可以用吗
环境delphi 5

[解决办法]
把字符串反向

用pos('-',str)取出位置,再copy,最后反过来就OK
[解决办法]
//从右面查找c第一次出现的位置
function rightpos(c:char;s:string):integer;
var
i:integer;
begin
result:=0;
for i:=length(s) downto 1 do
if s[i]=c then
begin
result:=i;
break;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:string;
begin
s:='abc-edf-gh';
i:=rightpos('-',s);
s:=copy(s,1,i);
showmessage(s);
end;
[解决办法]
//这样也可以
function aa(s:string):string;
var
i:integer;
str:string;
begin
str:=reversestring(s);
i:=pos('-',str);
str:=copy(str,i,length(str)-i+1);
result:=reversestring(str);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='abc-edf-gh';
showmessage(aa(s));
end;
[解决办法]
算了,都写了,我也来整个最短的,不用自己写函数的,也就是brightyang 说的方法,倒置,截取,再倒置,OK

Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);//按钮的click事件,换作其他的都可以var  i:integer;  str:string;begin  str:=ReverseString(trim(edit1.Text));  i:=pos('-',str);  edit2.text:=reversestring(copy(str,i,length(str)));end;
[解决办法]
小弟看到上面 to :小和有一点错误,,西西,,
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:string;
begin
s:= 'abc-edf-gh ';
i:=rightpos( '-',s);
s:=copy(s,1,i-1);//这里,,,,,,,,,,,,,,,,,,,,,
showmessage(s);
end;
function TForm1.rightpos(c: char; s: string): integer;
var
i:integer;
begin
result:=0;
for i:=length(s) downto 1 do
if s[i]=c then
begin
result:=i;
break;
end;
end;

热点排行