【问题标题】:Reversing string lines [duplicate]反转字符串线[重复]
【发布时间】:2017-06-21 18:35:32
【问题描述】:

如何反转字符串行?不是文本文件。 字符串 tekstGecmis 是:“1\r\n2\r\n3\r\n”

1

2

3

收件人:

3

2

1

我试过了

string son = String.Empty;
StringBuilder ters = new StringBuilder();
for (int i = 1; i < 4; i++)
{
    string[] lines = tekstGecmis.Split('\r','\n');
    string last_line = lines[lines.Length - i];
    
    ters.AppendLine(son + last_line);
    
    son = ters.ToString();
}

【问题讨论】:

  • 更改此部分tekstGecmis.Split('\r','\n');
  • 有很多关于反转列表/数组/的问题和文档... - 当提出问题时,作者应该展示他们在研究解决方案时发现了什么以及在他们的情况下它是如何不起作用的。

标签: c# string


【解决方案1】:

你可以试试这个

string text = "1\r\n2\r\n3\r\n";

Console.WriteLine(string.Join("\r\n", text.Split('\r','\n').Reverse()));

working example

【讨论】:

    【解决方案2】:
    1. Splitstring循环前

    2. 反转循环的方向

    3. 循环后计算ters

    string son = String.Empty; StringBuilder ters = new StringBuilder(); string[] lines = tekstGecmis.Split('\r','\n'); for (int i = 3; i >= 0; i--) { ters.AppendLine(lines[i]); } son = ters.ToString();

    【讨论】:

      【解决方案3】:

      你可以这样做:

      string str1 = "1\r\n12\r\n31";
              string[] lines = str1.Split(new char[]{'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);
              lines = lines.Reverse().ToArray();
              string result = string.Join("\r\n", lines);
      

      【讨论】:

        【解决方案4】:

        这会将“1\r\n2\r\n3\r\n”变成“3\r\n2\r\n1\r\n”,这是我的想法你正在尝试做的事情:

        str = string.Join("\r\n",
            str.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Reverse());
        

        【讨论】:

        • 谢谢我想要的。 .
        • 我在我的 xamarin 便携式项目中使用。虽然在 uwp 平台上一切正常,但在 Android 平台上不起作用。是否有可能 Android 正在使用其他东西换行(\r\n)?
        • @YasarCurci 有可能。您可以改用Environment.NewLine。可能只是\n
        【解决方案5】:

        您可以简单地使用Reversestring.Join 方法。像这样:

        string result = string.Join("",son.Reverse());
        

        结果:

        3

        2

        1

        【讨论】:

        • 如果它与length&gt;1 一致,您的代码将反转该行。例如 31 更改为 13
        • 它也将 123 行反转为 321。我希望行保持不变。谢谢
        • @YasarCurci 所以您需要将此代码放在string[] lines = tekstGecmis.Split('\r','\n'); 行之后,并将son 替换为lines
        猜你喜欢
        • 2011-09-27
        • 2022-01-22
        • 1970-01-01
        • 2015-10-25
        • 2014-06-10
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多