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


154

我想将字符串数组转换为单个字符串。

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

我想要一个类似“ Hello World!”的东西。

Answers:


279
string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);


谢谢。我没有注意到尾随的空格,即使我将其粘贴粘贴到我的答案中也是如此。
戴夫·沃德,

2
我还需要在字符串(var separator = ", "; string.Join(separator , test);
逗号

5
好答案。虽然,我建议使用string.Join(string.Empty, test)而不是使用empty-paranthesis
现在,他一定不能被任命。

36

稍微更快的选项比使用已经提到的使用的Join()方法是CONCAT()方法。它不需要空的定界符参数Join()。例:

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);

因此可能更快。


1
Concat更好的是,在的内部代码中Join,它将在每个项目后附加分隔符。但是Concat没有这样的代码,它比更加简单直接Join。这是最合适的答案。
松鼠

22

尝试:

String.Join("", test);

它应该返回将两个元素连接在一起的字符串。""表示您希望将字符串连接在一起而没有任何分隔符。


那不会成为“ HelloWorld!” 单词之间没有空格?
jmort253 2011年

1
@ jmort253- "Hello "问题中的原始字符串已经有尾随空格。如果空间尚不存在,那您将是正确的,将其" "用作分隔符会更有意义。
davidg,2011年

19

一个简单的字符串.Concat()是您所需要的。

string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string result = string.Concat(test);

如果还需要添加分隔符(空格,逗号等),则应使用string.Join()。

string[] test = new string[2];

test[0] = "Red";
test[1] = "Blue";

string result = string.Join(",", test);

如果您必须在具有杂乱元素的字符串数组上执行此操作,那么从性能角度来看,它比string.Join()更好。只需提供一个“”(空白)参数作为分隔符即可。为了提高性能,也可以使用StringBuilder,但是它将使代码更长一些。


Concat并且JoinStringBuilder如果要连接的字符串少于或等于4个要快。
质量催化剂


1
    string ConvertStringArrayToString(string[] array)
    {
        //
        // Concatenate all the elements into a StringBuilder.
        //
        StringBuilder strinbuilder = new StringBuilder();
        foreach (string value in array)
        {
            strinbuilder.Append(value);
            strinbuilder.Append(' ');
        }
        return strinbuilder.ToString();
    }

3
这只是手动实现string.Join(" ", array)(除非您添加了尾随空格)。为什么不只使用库中的那个?
davidg,2011年

1
@davidg-Ashwini可能是新的。学习使用现有工具并克服大学的“我必须自己做”的心态需要一些习惯。它对我有用。最终,人们想知道为什么他们的同事能够对周围的圈子进行编码,然后他们看到了代码库中的价值并可以重用。
jmort253 2011年

无论我记得什么,我都尽力提供帮助。.如果有人有更好的解决方案,您随时可以发布它。 ur abt ...任何人都不是完美的...经过多年的学习,您希望..希望您不要否认这一事实..
程序员

@Ashwini-不想冒犯你。根据我与不同工程师一起工作的经验,只需回答@davidg的问题即可。
jmort253 2011年

2
而且,连接的字符串的末尾会有一个额外的空格。因此,这并不能完全解决问题。
jmort253 2011年

0

我使用这种方式使我的项目更快:

RichTextBox rcbCatalyst = new RichTextBox()
{
    Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

RichTextBox.Text将自动将您的数组转换为多行字符串!


-1

在公认的答案中,String.Join并不是按其用法的最佳实践。应该使用String.Concat,因为OP在第一项中包含尾随空格:“ Hello”(而不是使用空定界符)。

但是,由于OP要求返回结果“ Hello World!”,因此String.Join仍然是适当的方法,但是应将尾随空白移动到定界符。

// string[] test = new string[2];

// test[0] = "Hello ";
// test[1] = "World!";

string[] test = { "Hello", "World" }; // Alternative array creation syntax 
string result = String.Join(" ", test);

-4

像这样:

string str= test[0]+test[1];

您还可以使用循环:

for(int i=0; i<2; i++)
    str += test[i];
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.