如何提取出最后一个‘-’以后的字符如:abc-def-ghi,我想提取出ghi
abc-def-ghi是一个变量的值,‘-’的各数也不一定有几个但只要最后一个‘-’后面的字符请问如何操作,

解决方案 »

  1.   

    var
      sUrl: String;  sUrl:=abc-def-ghi;
      while Pos('-',sUrl)>0 do
        Delete(sUrl,1,Pos('-',sUrl));
      

  2.   

    var
      str :string;
    begin
      str :='abc-def-ghi';         //你可以封装为函数,这个字符串可以用参数传递进来
    while pos('-', str) <> 0 do
      str :=Copy(str, Pos('-', str) + 1, Length(str));
    //循环结束以后str 就是ghi了
    end;
      

  3.   

    var
    i:integer;
    str,tempstr:string;
    begin
    str:='字符串'
    tempstr:=''
    for i:=length(str) down to 1 do
    begin
      if copy(str,i,1)='-' then
          break;
      tempstr:=copy(str,i,1)+tempstr;
    end;
    end;
    tempstr即所求
      

  4.   

    ReverseString()函数也可以轻易解决这个问题
      

  5.   

    var
      Strs: TStringList;
      St: String;
    begin
      St := 'abc-def-ghi'; 
      Strs := TStringList.Create ;
      Strs.Delimiter := '-';
      Strs.DelimitedText := St;
      ShowMessage(Strs[Strs.Count - 1]);
      Strs.Free
    end;
      

  6.   

    var
    tt:tstringlist;
    begin
      tt:=tstringlist.create;
      tt.Delimiter:='-';
      tt.DelimitedText:='abc-def-ghi';
      showmessage(tt[tt.count-1]);
      tt.free;
    end;
      

  7.   


    引用StrUtil后str:='abc-def-ghi';
    str:=reversestring(str);
    str:=reversestring(copy(str,0,pos('-',str)-1));
    这样最简单!
      

  8.   

    var
    i:integer;
    str,tempstr:string;
    begin
    str:='字符串'
    tempstr:=''
    for i:=length(str) down to 1 do
       if str[i]='-' then
         break;
    tempstr:=copy(str,i+1,length(str));
    end;
    end;
    tempstr即所求