PDA

View Full Version : جدا كردن اعداد از يك رشته



irana8
چهارشنبه 04 مرداد 1391, 10:01 صبح
سلام دوستان من يه رشته اينچنيني دارم كه ميخام اعدا رو از توش جدا كنم .ايا راهي بلدين؟ممنون
86587F22015204DBC72B3E0AAD38E9D9

ali_habibi1384
چهارشنبه 04 مرداد 1391, 10:41 صبح
اگر منظورت اينه كه ميخواي اعداد رو از توش حذف كني از تابع Replace استفاده كن بصورت زير:


string str = "86587F22015204DBC72B3E0AAD38E9D9";
str = str.Replace("1", "").Replace("2", "").Replace("3", "").Replace("4", "").Replace("5", "").Replace("6", "").Replace("7", "").Replace("8", "").Replace("9", "").Replace("0", "");

harani
چهارشنبه 04 مرداد 1391, 12:41 عصر
اگه تو تکست باکس میای رشته رو تایپ میکنی میتونی با کد زیر همزمان با تایپ کردن جدا سازی رو انجام بدی :


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
('if (e.KeyChar >= '0' && e.KeyChar <= '9
;()label1.Text += e.KeyChar.ToString
}

fjm11100
چهارشنبه 04 مرداد 1391, 12:53 عصر
یک حلقه بنویس و یکی یکی کارکترها را بررسی کن اگر کد اسکیش بین 30 هگز(مخ من به هگز بیشتر از دهدهی عادت داره!!! تبدیل کن ببین دهدهیش چی میشه) تا 39 هگز بود یعنی عدد هستند.

irana8
چهارشنبه 04 مرداد 1391, 13:06 عصر
اگر منظورت اينه كه ميخواي اعداد رو از توش حذف كني از تابع Replace استفاده كن بصورت زير:


string str = "86587F22015204DBC72B3E0AAD38E9D9";
str = str.Replace("1", "").Replace("2", "").Replace("3", "").Replace("4", "").Replace("5", "").Replace("6", "").Replace("7", "").Replace("8", "").Replace("9", "").Replace("0", "");

نه دقيقا اعداد رو نياز دارم.اين اعداد هم تو تكست باكس يا از طريق تايپ ايجاد نميشن بلكه تو يه متغيير هست.

fjm11100
چهارشنبه 04 مرداد 1391, 13:08 عصر
راه من بکارت نیومد؟!!

Saman_12
چهارشنبه 04 مرداد 1391, 13:12 عصر
از regex استفاده کنید (عبارات با قاعده) :

\d+

ali_habibi1384
چهارشنبه 04 مرداد 1391, 13:22 عصر
راه حل fjm1100 ساده ترين راه حله و درسته.دقيقا جوابتو داده.

irana8
چهارشنبه 04 مرداد 1391, 18:08 عصر
راه من بکارت نیومد؟!!

چرا اتفاقا دارم با این روش ور میرم.منتها نمی تونم مقدار هگز یا کد اسکی کاراکترها رو بدست بیارم.ممکنه اون تیکه کدش و برام بزاری؟ممنون.

ali_habibi1384
چهارشنبه 04 مرداد 1391, 18:37 عصر
اين رو خودم هم تست كردم برات:


string result="", str = "09238n098n0128n08";
for (int i = 0; i < str.Length; i++)
if ("0123456789".Contains( str[i])) result += str[i];
MessageBox.Show(result);

در اين مثال result ميشه 0923809812808

Mahmoud.Afrad
چهارشنبه 04 مرداد 1391, 18:38 عصر
به جای کد هگز از مقایسه کاراکترها هم میتونی استفاده کنی
for (int i = 0; i < textBox1.TextLength; i++)
{
if (textBox1.Text[i] >= '0' && textBox1.Text[i] <= '9')
textBox2.Text += textBox1.Text[i];
}

irana8
چهارشنبه 04 مرداد 1391, 18:40 عصر
اين رو خودم هم تست كردم برات:


string result="", str = "09238n098n0128n08";
for (int i = 0; i < str.Length; i++)
if ("0123456789".Contains( str[i])) result =result+ str[i];
MessageBox.Show(result);

در اين مثال result ميشه 0923809812808


ممنون عالی بود.
ممکنه در مورد بدست آوردن دستوری که کد کاراکتر ها رو برمیگردونه هم یه توضیح کوچولو بدی؟

irana8
چهارشنبه 04 مرداد 1391, 18:44 عصر
به جای کد هگز از مقایسه کاراکترها هم میتونی استفاده کنی
for (int i = 0; i < textBox1.TextLength; i++)
{
if (textBox1.Text[i] >= '0' && textBox1.Text[i] <= '9')
textBox2.Text += textBox1.Text[i];
}

خیلی ممنون کد شما هم درسته و کار میکنه.از همه دوستان تشکر میکنم.

ali_habibi1384
چهارشنبه 04 مرداد 1391, 19:28 عصر
ممنون عالی بود.
ممکنه در مورد بدست آوردن دستوری که کد کاراکتر ها رو برمیگردونه هم یه توضیح کوچولو بدی؟
لازم نيست كد اونها رو بدست بياري. من از تابع Contains استفاده كردم تا ببينم اگر كاراكتر مورد نظر درون كاراكترهاي عددي بود اونو در Result بريزه

ali_habibi1384
چهارشنبه 04 مرداد 1391, 19:31 عصر
ممنون عالی بود.



خیلی ممنون کد شما هم درسته



.از همه دوستان تشکر میکنم

ميتونيد از كليد تشكر استفاده كنيد:چشمک:

yashar666
چهارشنبه 04 مرداد 1391, 19:44 عصر
string s = textBox1.Text;
StringBuilder alph = new StringBuilder();
StringBuilder num = new StringBuilder();
foreach (char c in s)
if (char.IsDigit(c))
num.Append(c);
else
alph.Append(c);
label1.Text = alph.ToString();
label2.Text = num.ToString();


موفق باشید

irana8
چهارشنبه 04 مرداد 1391, 20:30 عصر
string s = textBox1.Text;
StringBuilder alph = new StringBuilder();
StringBuilder num = new StringBuilder();
foreach (char c in s)
if (char.IsDigit(c))
num.Append(c);
else
alph.Append(c);
label1.Text = alph.ToString();
label2.Text = num.ToString();


موفق باشید
حیفم اومد فقط دکمه تشکر را بزنم
کد شما کاملتر بود و حروف را هم جدا میکرد.ممنون

hassan p.b
دوشنبه 07 تیر 1400, 19:27 عصر
سلام بنده هم به کمک نیاز دارم ادرس زیر:
https://barnamenevis.org/showthread.php?566359-%D8%AC%D8%AF%D8%A7%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D8%B2-%D9%85%D8%AA%D9%86-%D8%AF%D8%B1-C-%DB%8C%D8%A7-c-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-AVR&p=2443969#post2443969

mohsen1726
سه شنبه 09 آذر 1400, 10:30 صبح
سلام دوستان من يه رشته اينچنيني دارم كه ميخام اعدا رو از توش جدا كنم .ايا راهي بلدين؟ممنون
86587F22015204DBC72B3E0AAD38E9D9


سریعترین کد برای جداسازی اعداد از یک طول رشته:

$txt="86587F22015204DBC72B3E0AAD38E9D9";
$digits = preg_replace("/[^0-9]/", '', $txt);

mohsen1726
سه شنبه 09 آذر 1400, 10:31 صبح
بهترین و سریعترین راه برای جداسازی اعداد از یک رشته:

$txt="86587F22015204DBC72B3E0AAD38E9D9";
$digits = preg_replace("/[^0-9]/", '', $txt);

mohsen1726
سه شنبه 09 آذر 1400, 10:33 صبح
$txt="86587F22015204DBC72B3E0AAD38E9D9";
$digits = preg_replace("/[^0-9]/", '', $txt);