zoukankan      html  css  js  c++  java
  • 自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的

    已经好几次了,没有这个函数还是感觉很不方便,所以自己写了一个:

    function LastPos(strFind :string; ch: Char): integer;
    var
        i, n: integer;
    begin
        Result := -1;
        if strFind='' then
        begin
            Exit;
        end;
        for i:=1 to Length(strFind) do
        begin
            if strFind[i]=ch then
                Result := i;
        end;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s1: String;
    begin
      s1 := 'abc';
      ShowMessage(s1[1]);
      ShowMessage(IntToStr(Length('/myaccount/save1/')));
      ShowMessage(IntToStr(LastPos('/myaccount/save1/', '/')));
    end;

    当然,这里没有考虑效率和Unicode等问题,反正对D7比较好用。

    另一个算法,看看别人怎么写的吧(倒序是非正常思路):

    function LastPos(const S: string; C: Char): Integer;
    var
        i: Integer;
    begin
        i := Length(S);
        while (i > 0) and (S[i] <> C) do
            Dec(i);
        Result := i;
    end;
  • 相关阅读:
    ASP.NET Repeater-重复器
    ADO.NET数据库访问技术
    类库和委托、 is 和as
    小知识
    多态
    封装和继承
    资源管理器
    简易计算器
    小知识点
    jquery cookie页面传值和jquery监听页面刷新
  • 原文地址:https://www.cnblogs.com/findumars/p/5014781.html
Copyright © 2011-2022 走看看