...
A:='my';B:='';C:='world';(此为例子,实际是不知道哪个为空!)
...
A+' '+B+' '+C;得到的是'my  world'(中间有两个空格!)
怎样才能把A,B,C合成得到'my world'(中间只有一个空格!)
也就是把不为空的字符串用一个空格连接为一个字符串!

解决方案 »

  1.   

    D := A+' '+B+' '+C;
                          此處兩個空格
     D := S StringReplace(D, '  ', ' ', [rfReplaceAll]);
      

  2.   

    D := Trim(A) + ' '+ Trim(B) + ' ' + Trim(C) 
    你先把ABC中的两边的空格去掉,不就行了吗
      

  3.   

    if A='' then
       s:=B+' '+C
    else begin
       if B='' then
          S:=A+' '+C
       else 
          S:=A+ ' '+B;
    end;
      

  4.   

    AnsiReplaceStr(str,'  ',' ');
    当str有两个空个时候,自动用一个空个代替
      

  5.   

    谢谢大家帮忙!
    我的意思是要将所有的字符串连接起来后用
    每个不为空的字符串之间用一个空格连接,我是这样实现的:stringResult :=trim(trim(trim(A)+' '+trim(B))+' '+trim(C));
      

  6.   

    stringResult :=trim(A)+' '+trim(B)+' '+trim(C);
    可以节省两个Trim调用
      

  7.   

    楼上
    当A:='hello';B:='';C:='world';时你的方法得到的是'hello  world',中间有两个空格,而我想要的结果是'hello world',中间只有一个空格。
      

  8.   

    先把数据放在一个stringlist中
    for i:=0 to 100 do
    begin
      if strings[i]<>'' then d:=d+' '+strings[i];
    end;
      

  9.   

    TrimLeft(Trim(A))+' '+TrimLeft(Trim(B))+' '+TrimLeft(Trim(C))
      

  10.   

    用AnsiReplaceStr()函数就可以了。不过,要uses StrUtils  myStr:=AnsiReplaceStr(myStr,'  ',' '); //把两个空格变成一个空格