我知道这是一个简单的问题,但我想我会尝试一下。
所以说我有一个名为“toReverse”的TextBox。如果我想要反转该TextBox中的所有文本,我该怎么做?
另外,我不能在其中使用VB.NET,即使它有单行的方式。
答案 0 :(得分:15)
using System.Linq;
new String(str.Reverse().ToArray());
答案 1 :(得分:5)
您可以将它传递给char of Array并将其反转:)
char[] arr = s.ToCharArray();
Array.Reverse(arr);
var yourString = new string(arr);
答案 2 :(得分:4)
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;
希望这有帮助
答案 3 :(得分: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();
另一种方法是向后遍历字符串,填充StringBuilder
:
StringBuilder sb = new StringBuilder(myString.Length);
for (int i = myString.Length-1; i >= 0; --i)
{
sb.Append(myString[i]);
}
string reversed = sb.ToString();
当然,上面有很多变化。