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

Posted

技术标签:

【中文标题】将字符串数组转换为字符串【英文标题】:convert string array to string 【发布时间】:2011-06-18 00:05:53 【问题描述】:

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

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

我想要“Hello World!”之类的东西

【问题讨论】:

【参考方案1】:
string[] test = new string[2];

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

string.Join("", test);

【讨论】:

+1 - 正如@davidg 所指出的那样,我删除了 Join 中的空格以使其正确 谢谢。我没有注意到尾随空格,即使我将其复制粘贴到我的答案中。 我还需要在我的字符串(逗号和空格)之间放置一个分隔符,所以我使用了:var separator = ", ";string.Join(separator , test); 很好的答案。不过,我建议使用string.Join(string.Empty, test) 而不是empty-paranthesis【参考方案2】:

比使用已经提到的Join() 方法稍 的选项是Concat() 方法。它不需要像Join() 那样的空分隔符参数。示例:

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

string result = String.Concat(test);

因此它可能更快。

【讨论】:

Concat 更好,在Join 的内部代码中,它会在每个项目后附加分隔符。但是Concat没有这样的代码,比Join更简单直接。这是最合适的答案。【参考方案3】:

你需要一个简单的 string.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 以提高性能,但它会使代码变长一些。

【讨论】:

ConcatJoinStringBuilder 快,如果你有 4 个或更少的字符串要连接。 这是最好的答案!【参考方案4】:

试试:

String.Join("", test);

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

【讨论】:

那不是“HelloWorld!”吗?单词之间没有空格? @jmort253 - 问题中的原始字符串 "Hello " 已经有一个尾随空格。如果空间不存在,那么您是正确的,使用" " 作为分隔符会更有意义。【参考方案5】:

Aggregate也可以用于相同的。

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);

【讨论】:

由于构造了多个额外的字符串,这是实现String.Join 的极其浪费的方法。请阅读***.com/questions/217805/… 了解Aggregate 的正确变体。【参考方案6】:
    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();
    

【讨论】:

这只是手动实现string.Join(" ", array)(除了你的添加尾随空格)。为什么不直接使用图书馆里的那个? @davidg - Ashwini 可能是新的。学习使用现有工具并克服大学里“我必须自己做”的心态需要一些时间来适应。它对我有用。最终,人们想知道为什么他们的同事能够围绕他们编写代码,然后他们看到了代码库和重用的价值。 无论我记得什么,我都试图提供帮助。如果有人有更好的解决方案,您可以随时发布。@jmort:我已经工作 4 年了...我不要有你说话的心态......任何人都不完美......多年来你学到的经验......希望你不要否认这个事实...... @Ashwini - 不是想冒犯你。只是根据我与不同工程师合作的经验回答@davidg 的问题。 此外,连接的字符串将在其末尾附加一个额外的空格。所以这并不完全符合问题。【参考方案7】:

在接受的答案中,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);

【讨论】:

【参考方案8】:

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

RichTextBox rcbCatalyst = new RichTextBox()

    Lines = arrayString
;
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

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

【讨论】:

【参考方案9】:

像这样:

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

你也可以使用循环:

for(int i=0; i<2; i++)
    str += test[i];

【讨论】:

以上是关于将字符串数组转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中如何将字符串转换为数组和数组转换为字符串

怎么将arraylist转换为字符串数组

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

将 numpy 数组转换为 CSV 字符串,将 CSV 字符串转换回 numpy 数组

将字符数组转换为字符串数组[重复]

将字符串数组转换为 Snowflake 中的数字数组