atVSG

0011001000110100

وحید امیری مطلق

توسعه دهنده وب و موبایل

تبدیل کردن اعداد انگلیسی به فارسی و برعکس در سی شارپ


خیلی پیش میاد که بخواهید اعداد انگلیسی موجود در یک متن رو به فارسی تبدیل کنید یا برعکس اون. در این پست 2 اکستنشن متود برای این کار معرفی میکنم.

میتونیم عمل تغییر اعداد رو با فراخوانی پیاپی متود replace روی یک رشته انجام بدیم.

متود برای تبدیل اعداد انگلیسی به فارسی:

public static string ConvertNumbersToPersian(this string str)
{
	return str.Replace("0", "۰").Replace("1", "۱").Replace("2", "۲").Replace("3", "۳").Replace("4", "۴").Replace("5", "۵").Replace("6", "۶").Replace("7", "v").Replace("8", "۸").Replace("9", "۹");
}

و برای تبدیل اعداد فارسی موجود در متن به اعداد انگلیسی:

public static string ConvertNumbersToEnglish(this string str)
{
	return str.Replace("۰", "0").Replace("۱", "1").Replace("۲", "2").Replace("۳", "3").Replace("۴", "4").Replace("۵", "5").Replace("۶", "6").Replace("v", "7").Replace("۸", "8").Replace("۹", "9");
}

این متود ها به صورت Extension Method هستند و برای استفاده از باید اون ها رو توی یک کلاس static قرار بدید و مثل زیر استفاده کنید:

string str = "Hello 1234";
string strWithPersianNumbers = str.ConvertNumbersToPersian();

 دیدگاه ها: 2 دیدگاه
  1. این روش ۱۰ بار کل متن مورد نظر را پیمایش می کند و باعث ایجاد ۱۰ string به اندازه string اولیه در حافظه میشود. بهتر است از یک StringBuilder و یک حلقه به منظور ایجاد string نهایی استفاده شود.


سوال یا دیدگاه؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *