-10

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

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

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

4

4 回答 4

15
using System.Linq;

new String(str.Reverse().ToArray());
于 2012-06-16T23:55:13.390 回答
5
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;

希望这可以帮助

演示图片

于 2012-06-17T00:06:27.977 回答
5

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

char[] arr = s.ToCharArray();
Array.Reverse(arr);
var yourString = new string(arr);
于 2012-06-16T23:53:54.397 回答
1

如果您不想使用内置设施,有几种方法可以做到这一点。例如,您可以创建一个数组,反转该数组(使用显式循环而不是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();

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

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

当然,上述内容有很多变化。

于 2012-06-17T00:51:53.403 回答