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;
  • 相关阅读:
    HashMap实现原理
    框架-Spring
    团队开发介绍
    返回一个环状整数数组中最大子数组之和
    软件工程学习体会
    书店促销
    寻找小水王
    梦断代码阅读笔记3
    找水王
    梦断代码阅读笔记2
  • 原文地址:https://www.cnblogs.com/findumars/p/5014781.html
Copyright © 2011-2022 走看看