如何处理这样的字符串? ( 积分: 100 )

  • 主题发起人 主题发起人 herui
  • 开始时间 开始时间
H

herui

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中需合并二个字符串组成一个新的字符串,新的字符串不能重复,如
原字符串分别为:北京市宣武区,宣武区进出口公司
组成的新字符串应为:北京市宣武区进出口公司。
去掉重复字符串“宣武区”。重复字符串是变化的,但两个字以上就算重复,如何实现?
 
function TForm1.CompStr(FormerStr1, FormerStr2: string): string;
var
FinalInt : integer;
same : boolean;
I : integer;
begin
//去掉空格并转为WideString
FormerStr1 := WideString(Trim(FormerStr1));
FormerStr2 := WideString(Trim(FormerStr2));
//找到最后出现第一个字符串的位置
for I := 1 to Length(FormerStr1) do
if FormerStr1 = FormerStr2[1] then
FinalInt := I;
//检查字符串是否不相同
same := false;
for I := FinalInt to Length(FormerStr1) do
if FormerStr1 <> FormerStr2[i - FinalInt + 1] then
same := true;

if (Length(FormerStr1) - FinalInt <= 2) or same then
result := FormerStr1 + FormerStr2
else
result := copy(FormerStr1, 1, FinalInt - 1) + FormerStr2;
end;


今天非常难得有清闲,就写好给你了!
 
虽然不是很完美,还是谢谢啦。
 

Similar threads

回复
0
查看
848
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部