字符串问题,例如S1=‘b;cc;d’,S2=‘d;b;cc’,即如果去掉分号后,两个字符串包含的分号两边的单个相同的,即判断S1=S2,如果S1=‘b;cc;d’,S2=‘d;b;c’即判断S1<>S2,怎样做这个判断?

解决方案 »

  1.   

    提供一个常用的方法:const S1='b;cc;d';S2='d;b;cc';
    var sL1,sL2:Tstringlist;
    begin
      sL1:=Tstringlist.Create;
      sL1.Delimiter:=';';
      sL1.DelimitedText:=stringreplace(S1,' ','**##&&**',[]); {空格也会换行,所以随便用个字符替换掉}
      sL1.Sort;  sL2:=Tstringlist.Create;
      sL2.Delimiter:=';';
      sL2.DelimitedText:=stringreplace(S2,' ','**##&&**',[]);;
      sL2.Sort;  if sL1.Text=sL2.Text then
        showmessage('相同')
      else
        showmessage('不相同') ;
      sL1.Free;
      sL2.Free;
    end;