【问题标题】:How do I reverse text in C#? [closed]如何在 C# 中反转文本? [关闭]
【发布时间】:2012-06-16 23:52:08
【问题描述】:

我知道这是一个简单的问题,但我想我会试一试。

假设我有一个名为“toReverse”的文本框。如果我想反转那个 TextBox 中的所有文本,我该怎么做呢?

另外,我不能在其中使用 VB.NET,即使它有一种单行方式。

【问题讨论】:

  • 呃,你看过微软的 .Net "string" 文档了吗???作为“Array.Reverse(string.toCharArray())”?
  • @Minicl55 为什么不能一行行呢?这似乎是一个奇怪的要求。你可以开始随机休息。
  • 这是个好问题。你还没有回答 vcjones 的问题。
  • 如果这不是家庭作业,为什么不能一行完成?谁/是什么阻止你这样做?
  • I figured that I might as well figure out how to do it 来到这里并将最差的答案标记为解决方案?我用谷歌搜索了你的问题的标题,发现了 430 万个链接

标签: c# string reverse


【解决方案1】:
using System.Linq;

new String(str.Reverse().ToArray());

【讨论】:

    【解决方案2】:
    char[] chararray = this.toReverse.Text.ToCharArray();
    Array.Reverse(chararray);
    string reverseTxt = "";
    for (int i = 0; i <= chararray.Length - 1; i++)
    {
        reverseTxt += chararray.GetValue(i);
    }
    this.toReverse.Text = reverseTxt;
    

    希望对你有帮助

    【讨论】:

    • 但如果你还是要使用Array.Reverse,为什么不做单行呢?
    • @JimMischel 回答我提供的基础知识牢记在心。我自己是一个学习者,所以我知道我会据此提供答案。一个班轮没问题。每天我都在学习和改进,像你一样的大师总是在这里改进像我这样的人思考和编写代码的方式。
    • @Minicl55 看到我的回答并仔细检查这是否可行。
    • selbarésiM seL 这就是答案。
    【解决方案3】:

    您可以将它传递给 char 数组并反转它:)

    char[] arr = s.ToCharArray();
    Array.Reverse(arr);
    var yourString = new string(arr);
    

    【讨论】:

      【解决方案4】:

      如果您不想使用内置设施,您可以通过多种方式来执行此操作。例如,您可以创建一个数组,反转该数组(使用显式循环而不是 Array.Reverse),然后从该数组创建一个新字符串:

      char[] txt = myString.ToArray();
      int i = 0;
      int j = txt.Length - 1;
      while (i < j)
      {
          char t = txt[i];
          txt[i] = txt[j];
          txt[j] = t;
          ++i;
          --j;
      }
      string reversed = new string(txt);
      

      另一种方法是使用堆栈。将单个字符压入堆栈,然后将它们弹出以填充StringBuilder

      Stack<char> charStack = new Stack<char>();
      foreach (var c in myString)
      {
          charStack.Push(c);
      }
      StringBuilder sb = new StringBuilder(myString.Length);
      while (charStack.Count > 0)
      {
          sb.Append(charStack.Pop());
      }
      string reversed = sb.ToString();
      

      另一种方法是向后遍历字符串,填充StringBuilder

      StringBuilder sb = new StringBuilder(myString.Length);
      for (int i = myString.Length-1; i >= 0; --i)
      {
          sb.Append(myString[i]);
      }
      string reversed = sb.ToString();
      

      当然还有很多变种。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-02
        • 2013-02-25
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        相关资源
        最近更新 更多