gpt4 book ai didi

delphi - 从Delphi中的字符串中删除多个子字符串

转载 作者:行者123 更新时间:2023-12-03 18:35:02 29 4
gpt4 key购买 nike

我知道以下代码在Delphi中删除了相关字符串('12345678')中从位置3开始的四个字符:

    var
Source : string;

begin
Source := '12345678';
delete(Source, 3, 4); // Delete the 3rd, 4th, 5th and 6th characters
ShowMessage('Source now : '+Source);
end;


但是,如何删除多个子字符串?例如,如果我想删除字符串“ 12345678”中的2和3以及5和6,以获得“ 1478”。谢谢。

最佳答案

最简单(也是最有效的方法)是通过两次调用Delete来完成,首先删除从5开始的两个字符,然后删除从2开始的两个字符。(如果首先从2开始,它将转移如David在对该问题的评论中所指出的,其余字符的索引)。

var
Source : string;
begin
Source := '12345678';
Delete(Source, 5, 2);
Delete(Source, 2, 2);
ShowMessage('Source now : '+Source);
end;


@JanLaundsen在对该问题的评论中建议您也可以使用 Copy在一行中进行操作:

Source := Copy(Source, 1, 1) + Copy(Source, 4, 1) + Copy(Source, 7, MaxInt);


此解决方案有效,但是增加了三个函数调用(对 Copy的调用)和三个临时字符串分配(对 Copy的每次调用的结果一个)的开销,而这在两次对 。 (保存一行代码并不总是最好的解决方案)。 IMO,两个单独的调用也更容易阅读,但这是个人观点。它可能对您来说更不易读。

关于delphi - 从Delphi中的字符串中删除多个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49203700/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com