【问题标题】:C# Putting an Array in to a String BackwardC# 将数组向后放入字符串
【发布时间】:2016-07-30 18:31:45
【问题描述】:

所以我有一个我填满的数组。 现在我遇到的问题是我想将数组放在一个字符串中,但从数组的末尾开始。

while(Opsplitser > -1)
{
    EindResultaat = EindResultaat + string.Join(" ",  Opsplitsen[Opsplitser]);
    Opsplitser--;

}

我已用作代码,但我遇到的问题是连接最终将整个数组放在一个大字符串中,但没有在数组文本之间放置空格。 有没有一种不同的方法可以将数组放入一个字符串中,中间有空格?

【问题讨论】:

  • 阅读 String.Join() 的文档。它不会做你认为它会做的事情。它做了一些完全不同的事情。

标签: c# arrays string join


【解决方案1】:

使用此代码:

string str = string.Join(" ", Opsplitsen.Reverse());

Linq 操作Reverse() 反转数组中项目的方向,Join 以空格作为第一个参数,将所有项目之间的空格连接起来。

【讨论】:

    【解决方案2】:

    你可以使用 Join 两次,然后使用 LINQ 的 Reverse 方法摆脱外循环,如下所示:

    var res = string.Join(" "
    ,   listOfLists.Reverse().Select(list => 
            string.Join(" ", list)
         )
    );
    

    【讨论】:

    • 为什么结果中有多余的逗号?
    • @MartinMulder 我明白了,他也将空间用于他的内部列表!
    【解决方案3】:

    应该这样做:

    string result;
    string[] input;
    for(int i = input.Lenght; i >= 0; i--)
    {
       result += input[i];
       result += (i == 0) ? '' : ' ';
    }
    

    【讨论】:

    • 没有。交换两条连接线。
    • 如果 i == 0 我不想添加空白.. ?
    • 是的。该行是正确的,但您想在前一个单词和当前单词之间添加分隔空间。您不想在已经添加当前单词之后添加空格,因为它们可能不是下一个单词...
    • 我添加'A'然后是SPACE然后是'B'然后是SPACE然后是'C'有什么问题? @MartinMulder
    • 你完全正确。我刚来,喝了点酒,现在一切都清楚了。我的错。
    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多