将字符数组转换为字符串?

14

如何将字符数组转换为字符串?

我有一个普通的字符数组,想将其值转换为字符串。我该怎么做?

编辑:最初这个问题问的是“字符串数组转换为字符串”,但是提问者接受了回答“字符数组转换为字符串”。


你只是想要将它们连接起来,还是需要更复杂的操作? - Marcelo Cantos
目前我有一个数组,例如值为“苹果、梨、橙子”,我想将其转换为字符串。 - john12
2
你的数组是什么数据类型? - David Heffernan
5
那是完全不同的问题。我怀疑在您提供一些代码来说明您的问题之前,这个问题无法得到解决。 - Marcelo Cantos
3
修改问题以适应已接受的答案。 - Warren P
显示剩余4条评论
2个回答

20

看起来你可能有一个字符数组中的文本。如果是这样,你可以这样做:

function ArrayToString(const a: array of Char): string;
begin
  if Length(a)>0 then
    SetString(Result, PChar(@a[0]), Length(a))
  else
    Result := '';
end;

另一方面,也许你在问一个完全不同的问题。


@Marcelo 感谢您的编辑。我的拼写糟糕让我感到很尴尬。 - David Heffernan
2
没关系,这是一个非常常见的打字错误。至少你没有写成“loosing”,那个让我毛骨悚然。 - Marcelo Cantos
谢谢Marcelo和David。我已经想通了我想做的事情(是我的愚蠢)。再次感谢 :) - john12
你想要做什么? - David Heffernan
John,不要把“字符数组”叫做“字符串数组”。这两者有很大的区别。 - Warren P
1
更容易的方法是将字符数组分配给字符串。 s:= myCharArray; - LU RD

1
function ArrayToString(const Data: array of string): string;
var
  SL: TStringList;
  S: string;
begin
  SL := TStringList.Create;
  try
    for S in Data do
      SL.Add(S);
    Result := SL.Text;
  finally
    SL.Free;
  end;
end;

这是我理解你所问的方式。然而,也许David的解决方案才是你想要的。你自己决定。


OP非常困惑,我想你可能已经猜到了。如果真正的问题是“字符串数组”转换为字符串,那么这个方法可以解决。 - Warren P
我认为真正的问题是字符串数组。我看到已经被编辑,现在它是字符数组。那么SetString确实是解决方案。 - Rudy Velthuis
实际上,TStringBuilder 可能会更好。但可能只是稍微好一点。我从未对 Delphi 的 TStringBuilder 效率进行过分析。 - Rudy Velthuis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接