Delphi 截取字符串+详细注释

RAD Studio 10.3.3 测试√


TArray 版

在这里插入图片描述

/// <summary>
/// 字符串分割
/// </summary>
/// <param name="mStr">被分割的字符串</param>
/// <param name="mDelimiter">分隔标识</param>
/// <returns>数组:TArray[string]</returns>
function mStrSplit(mStr: string; mDelimiter: string): TArray<string>;
var
  i, len, count: integer;
  mPart: string;
  mArr: TArray<string>;
begin
  // 字符串的长度
  len := Length(mStr);
  mPart := '';
  count := 0;
  // 遍历字符串
  for i := 1 to len do
  begin
    // 如果 第[i]个字符 = 分隔标识符 或者 (是最后一个字符 并且 这个字符 <> 分隔标识符)
    if (mStr[i] = mDelimiter) or ((i = len) and (mStr[i] <> mDelimiter)) then
    begin
      // 计数【返回时数组的长度】
      count := count + 1;
      // 设置数组长度
      SetLength(mArr, count);
      // 如果 是最后一个字符 并且 这个字符符 <> 分隔标识符
      if (i = len) and (mStr[i] <> mDelimiter) then
        // 截取部分 = 上个分隔符之后遍历的部分 + 当前不是分隔符的字符
        mPart := mPart + mStr[i];
      // 数组[count-1] = 截取部分
      mArr[count - 1] := mPart;
      // 清空截取部分的临时值
      mPart := '';
    end
    else
    begin
      // 截取部分 = 上个分隔符之后的截取临时值 + 这个不是分隔符的值
      mPart := mPart + mStr[i];
    end;
  end;
  // 遍历完成后返回数组
  Result := mArr;
end;

procedure TForm1.Button8Click(Sender: TObject);
var
  mStr: string;
  mArr: TArray<string>;
begin
  mStr := '小印01*小印02*小印03*小印04';
  // 调用方法
  mArr := mStrSplit(mStr, '*');
  // 因为我知道长度,所以就直接打印了
  ShowMessage(mArr[0] + #13#10 + mArr[1] + #13#10 + mArr[2] + #13#10 +mArr[3]);
end;

TstringList 版

附加时间:2021年5月1日

procedure StrSplit(const AStr, ADelimiter: string; out AStrList: TStringList);
var
  i, mLen: Integer;
  mPart: string;
begin
  mLen := Length(AStr);
  mPart := '';

  for i := 1 to mLen do
  begin
    if (AStr[i] = ADelimiter) or ((i = mLen) and (AStr[i] <> ADelimiter)) then
    begin
      if (i = mLen) and (AStr[i] <> ADelimiter) then
        mPart := mPart + AStr[i];
      AStrList.Add(mPart);
      mPart := '';
    end
    else
      mPart := mPart + AStr[i];
  end;
end;

一点点笔记,以便以后翻阅。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小印丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值