簡単な質問ですが、やってみようと思いました。
つまり、「toReverse」という名前のTextBoxがあるとします。そのTextBox内のすべてのテキストを逆にしたい場合、どうすればそれを実行できますか?
また、VB.NETは1行で使用できますが、使用できません。
using System.Linq;
new String(str.Reverse().ToArray());
あなたはそれをcharの配列に渡しそしてそれを逆にすることができます:)
char[] arr = s.ToCharArray();
Array.Reverse(arr);
var yourString = new string(arr);
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
を使用して)、配列から新しい文字列を作成できます。
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();
そしてもちろん、上記には多くのバリエーションがあります。