PDA

View Full Version : سوال: چگونگی جدا کردن اعداد موجود در یک رشته در داخل textBox



rezastwo
دوشنبه 21 آذر 1390, 07:58 صبح
سلام دوستان
یه سوال
چطور میشه اعداد موجود در یک رشته که از یک تکست باکس دریافت میشه را جدا کرد
مثلا از رشته
{A={23,6,8,0,567,1234,a,B,4
اعداد را به صورت جدا جدا
یعنی
23
6
8
0
567
1234
4
داشته باشیم جهت ذخیره در لیست پیوندی

ممنون میشم کدشو بگین

ozzy_mra
دوشنبه 21 آذر 1390, 08:20 صبح
سلام
تابع زیر کاملاً جواب میده ولی برای پیدا کردن عدد یه کلک زدم

private void findDigit(string str)
{
List<string> st1 = new List<string>();
List<int> dig = new List<int>();
const char ch=',';
foreach(string Substr in str.Split(ch))
{
st1.Add(Substr);
}
int num;
foreach (string digit in st1)
{
try
{
num = Convert.ToInt32(digit);
dig.Add(num);
}
catch (Exception ex)
{ }
}
foreach (int item in dig)
{
//اینجا item رو به لیستت اضافه کن
}
}
کلکش هم اینجات که نو اون try catch اگه نتونه تبدیل به int بکنه یعنی استرینگه و خط بعد که به لیست ادد میکنه رو انجام میده و به catch میپره و اونجا هم کاری انجام نمیده و اگر هم عدد باشه ادد می کنه
اگر فقط برای جدا سازی اعداد می خوای این جواب میده ولی اگر کد پیدا کردن عدد هم برا مهمه باید رشته بدست اومده رو پیمایش کنی و مثلاً تو یه switch بررسی کنی که اگر کاراکترت از اعداد بو به لیتت اضافه بشه

rezastwo
دوشنبه 21 آذر 1390, 13:43 عصر
خیلی ممنون دوست عزیز
فقط میشه یکم بیشتر توضیحش بدی چون من در حد مبتدی هستم
باید هفته ی بعدم به عنوان پروژه تحویل بدم و دفاع کنم
الان نمیدونم باید با این کد چیکار باید بکنم
ممنون میشم اگه بیشتر راهنمایی کنی

ozzy_mra
دوشنبه 21 آذر 1390, 14:01 عصر
st1,dig
دو تا لیست هستند که نیازی به تعریف طولشون ندارند یه چیزی شبیه به آرایاه ها ولی با طول نامعین
تو دستور foreach اول رشته رو بر اساس کاما جدا می کنیم و در لیست st1 میریزیم یعنی هرکدوم از اعضای اون در واقع تک تک رشته هایی هیتند که بین , قرار دارند
تو دستور foreach دوم اومدم هرکدوم از اعضای st1 رو به عدد کانورت کردم و چون حرف به عدد از نوع int کانورت نمیشه خطا می ده و به لیست اضافه نمی کنه و اگر هم عدد باشه به لیست اضافه می کنه
تو foreach آخری هم برای نمایش اعداد بدست اومده هست و به جای توضیح من می تونی مثلاض با یه مسیج باکس نمایش بدی
ولی فکر کنم اگه برای پروژه دانشجویی باید تحویل بدی باید پیمایش عددی انجام بدی و با کلک! ازت قبول نکنند.

ozzy_mra
سه شنبه 22 آذر 1390, 06:56 صبح
اینم برنامش
79128
با پیمایش عددی

user6627
سه شنبه 22 آذر 1390, 10:16 صبح
سلام
نیازی به این کارا نیست می تونی خیلی راحت از توابع آماده در کلاس استرینگ استفاده کنی مثل زیر
کد زیر مقادیر را جدا و در آرایه ذخیره میکنه
string[] array = textbox1.split(','); // split text by ',' and store in array
کد زیر برای دریافت مقادیر از آرایه است که ایندکس از 0 هست تا طول آرایه منهای یک
array.GetValue(index); //use 0 ..... array.Length - 1 for index