PDA

View Full Version : سوال: پیدا کردن حروف فارسی و لاتین در یک رشته



iman20481
پنج شنبه 22 اسفند 1392, 22:55 عصر
با سلام خدمت عزیزان
یک سوال دارم. بنده میخوام که در یک رشته که در آن شماره تلفن هست و جلوی شماره تلفن نوشته ای وجود داره اون نوشته های جلوی شماره تلفن رو حذف کنم. به عنوان مثال رشته ای دارد که عبارت زیر در آن ذخیره شده است:
خط (10)09121234567
یا
09121234567 حیدری
یا
09121234567 Heidari

خوب برای من پاک کردن اون (10) راحت هست. ایندکس پرانتز اول و دوم رو میگیرم و به کمکشون راحت remove میکنم. ولی مشکلم سر وجود حروف توی رشته هست و ممکنه هر چیزی باشه. نمیدونم چطور میشه اون حروف رو از رشته حذف کرد. ممنون اگه کمکم کنید.

CsharpNevisi
پنج شنبه 22 اسفند 1392, 23:09 عصر
اینطوری : string a = "09121111111 mohsenfathi"; string b = "";
for (int i = 0; i <= a.Length-2; i++)
{
if (char.IsDigit(Convert.ToChar(a.Substring(i, 1))) == true)
{
b += a.Substring(i, 1);
}
}
MessageBox.Show(b);

iman20481
پنج شنبه 22 اسفند 1392, 23:18 عصر
خوب این جوابتون خیلی کمک کرد. اما یه موقع هایی هم هست که مثلا دو تا تلفن تو رشته هست و با یه - از هم جدا شده. مثلا
09121234567 - 0211234567 (10) خط
اینجوری که شما فرمودید دو تا شماره به هم میچسبه. البته میشه اول من همه شماره تلفن ها رو با یه قاعده ای از هم جدا کنم. مثلا همه تلفن ها رو با - . بعد اسپلیت کنم و بریزم تو یه آرایه و بعد تک تک عناصر آرایه رو بریزم تو این متدی که شما فرمودید

CsharpNevisi
پنج شنبه 22 اسفند 1392, 23:25 عصر
خب ببین اول با فیلتر خودت (10) رو وردار ... بعد بیا از کاراکتر - برای جداکردن استفاده کن و اینارم به کد اضافه کن که نیازی به دستور اسپلیت نباشه :
string a = "09121111111 - 0211111111 mohsenfathi"; string b = ""; for (int i = 0; i <= a.Length - 1; i++)
{
if (char.IsDigit(Convert.ToChar(a.Substring(i, 1))) == true || a.Substring(i, 1) == "-")
{
b += a.Substring(i, 1);
}
}
MessageBox.Show(b);

iman20481
پنج شنبه 22 اسفند 1392, 23:38 عصر
آقا فتحی واقعا ممنونم از کمکت :لبخندساده: