-10

簡単な質問ですが、やってみようと思いました。

つまり、「toReverse」という名前のTextBoxがあるとします。そのTextBox内のすべてのテキストを逆にしたい場合、どうすればそれを実行できますか?

また、VB.NETは1行で使用できますが、使用できません。

4

4 に答える 4

15
using System.Linq;

new String(str.Reverse().ToArray());
于 2012-06-16T23:55:13.390 に答える
5

あなたはそれをcharの配列に渡しそしてそれを逆にすることができます:)

char[] arr = s.ToCharArray();
Array.Reverse(arr);
var yourString = new string(arr);
于 2012-06-16T23:53:54.397 に答える
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 に答える
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();

そしてもちろん、上記には多くのバリエーションがあります。

于 2012-06-17T00:51:53.403 に答える