PDA

View Full Version : سوال: برعكس كردن يك رشته ؟



crazy_1892
یک شنبه 27 اردیبهشت 1388, 18:36 عصر
سلام دوستان مي خواستم يك روش براي بر عكس كردن يك رشته با استفاده از حلقه ها و بدون استفاده از آرايه بهم پيشنهاد بدين ...( ممنونم )

esmaeily-hosein
یک شنبه 27 اردیبهشت 1388, 18:46 عصر
public static class MethodExtensions
{
public static string Reverse(this string str)
{
if (str == null)
throw new ArgumentException("str is Null");

StringBuilder sb = new StringBuilder();
for (int i = str.Length - 1; i >= 0; i--)
sb.Append(str[i]);
return sb.ToString();
}
}

نحوه استفاده :


string stText="David";
stText.Reverse();

crazy_1892
یک شنبه 27 اردیبهشت 1388, 18:55 عصر
public static class MethodExtensions
{
public static string Reverse(this string str)
{
if (str == null)
throw new ArgumentException("str is Null");

StringBuilder sb = new StringBuilder();
for (int i = str.Length - 1; i >= 0; i--)
sb.Append(str[i]);
return sb.ToString();
}
}

نحوه استفاده :


string stText="David";
stText.Reverse();

اينو امتحان كردم جواب نداد

Salar Ashgi
یک شنبه 27 اردیبهشت 1388, 19:49 عصر
سلام ، روش ها زیاده ، یه نمونش :



string Reverse(string str)
{
string res = "";
for(int i=str.Length-1;i>=0;i--)
{
res+=str[i].ToString();
}
return res;
}


*) میشه یه تابع بازگشتی هم واسه اینکار نوشت !

موفق و پیروز باشید !!!

H2K
یک شنبه 27 اردیبهشت 1388, 20:00 عصر
سلام
دوست عزيز بهترين و راحت ترين استفاده از (Regular expression)





http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/csharp_0101.html

crazy_1892
یک شنبه 27 اردیبهشت 1388, 20:07 عصر
خيلي ممنون

esmaeily-hosein
یک شنبه 27 اردیبهشت 1388, 23:04 عصر
دوست عزيز بهترين و راحت ترين استفاده از (Regular expression)


فکر نمیکنم با Regex بشه یه همچین کاری کرد اگر یه نمونشو بزاری ممنون میشم .



اينو امتحان كردم جواب نداد

این کد برای .Net 3 به بعد میباشد . و با استفاده از Method Extesions ها نوشته شده است من خودم تست کردم مشکلی نداشت .

H2K
دوشنبه 28 اردیبهشت 1388, 02:26 صبح
دوست عزيز هيچ كارى نشد نداره من يك نمونه نوشته بودم پيداش بكنم حتما ميذارم اينجا كه ديگران هم استفاده كنن.


اين ۲ نمونه هم شايد به درد اين عزيز بخوره:




public static String Reverse(string input)
{
char[] reverse = newchar[input.Length];
for (int i = 0, k = input.Length - 1; i < input.Length; i++, k--)
{
if (char.IsSurrogate(input[k]))
{
reverse[i + 1] = input[k--];
reverse[i++] = input[k];
}
else
{
reverse[i] = input[k];
}
}
returnnew System.String(reverse);
}











public String Reverse(string str)
{
int len = str.Length;
char[] arr = newchar[len];
for (int i = 0; i < len; i++)
{
arr[i] = str[len - 1 - i];
}
returnnewstring(arr);
}

esmaeily-hosein
دوشنبه 28 اردیبهشت 1388, 10:11 صبح
بزاری خوشحال میشم . اون پست قبلی هم برای این گفتم که کار Regular Expression چیز دیگه ای است .

emdadgar2
سه شنبه 06 مرداد 1388, 15:57 عصر
Strings.reverse('test')
:گیج:

Open-Source
سه شنبه 06 مرداد 1388, 18:07 عصر
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < textBox1.Text.Length; i++)
{
textBox2.Text = textBox1.Text[i] + textBox2.Text;
}
}


اینم یه مدلشه.

seven7777777
چهارشنبه 07 مرداد 1388, 14:29 عصر
بهترین راه که به حافظه کمکی هم احتیاجی نداره اینه که دو تا نشانه در نظر بگیری . یکی به اولین کاراکتر رشتت و یکی هم به آخرین کاراکتر رشتت بعد بیایی و یکی یکی محتوای این دو تا رو عوض کنی و اولی رو یکی ببری جلو و دومی رو هم یکی بیاری عقب .
اینکارو اونقدر انجام میدی تا یا این دو تا به هم برسن و یا اولی از دومی رد بشه ( بزرگتر بشه ) .
اینجوری به راحتی رشتت برعکس میشه . کلش هم یه for با خط که جابجایی رو انجام میده یعنی دو تا خط میشه .