فصل بیستم دستکاری متن در #C

<!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:1627400839 -2147483648 8 0 66047 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman";} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:Arial; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

فصل بیستم

C # دستکاری متن در

آنچه که در این فصل یاد خواهید گرفت:

یک کاراکتر را به صورت یک کاراکتر یونیکد 16 بیتی ذخیره می کند. .NET ، کاراکترها و یونیکد 1: به طور پی شفرض??

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

عنوان محلی کردن 2 بیان م یشود.

رشته ها تغییرناپذیر هستند. برای کاربرد مؤثر رشت هها، فهم معنی آنها و اینکه چگونه .NET در :String مروری بر??

تغییرناپذیری، عملیات رشته ها را تحت تأثیر قرار می دهد، ضروری است.

تکنیک های فرمت دهی اعداد و تاریخ را پشتیبانی می کند. .NET ، علاوه بر عملیات پای های رشته :String عملیات??

این کلاس یک روش مؤثر برای الحاق رشت هها فراهم می سازد. :StringBuilder ??

یک موتور برای پارس کردن، تطابق و استخراج مقادیر از یک رشته بکار ،.NET در Regex عبارات منظم: کلاس??

می برد.

را معرفی می کند. موضوعات این فصل شامل کاربرد متدهای .NET این فصل توانای یهای اداره کردن رشته بوسیلة کلا سهای

اعداد و تاری خها را در String.Format جهت استخراج و دستکاری محتوای رشته است. کاربرد متد String پایه

فرمت های خاص نشان می دهد و کاربرد عبارت های منظم جهت انجام تطابق الگوی پیشرفته است. این فصل نحوه ی

را در بر دارد و غیره. JIT بهینه سازی کاربرد رشته های حرفی در کامپایلر

-1-20 کاراکترها و یونیکد

یکی از رویدادهای مهم در محاسبات، معرفی مجموعه کاراکتر هفت بیتی اسکی به عنوان شمای کدگذاری استاندارد جهت

تعیین منحصر به فرد کاراکترهای الفبایی و سمبل های مشترک دیگر است. آن بر اساس الفبای لاتین بوده و 128 کاراکتر را

تعداد کاراکترها را دو برابر کرده و سمب لهای واحد پول و الفبای اروپایی را به آن اضافه کرد. ANSI شامل است. استاندارد

چون آن بر اساس کاراکترهای لاتین است، تعدادی شمای کدگذاری برای نمایش کاراکترهای غیر لاتین همچون عربی، فارسی

و یونانی ایجاد شده است.

1 Unicode

2 Localization

mohsen_mahyar@yahoo.com - C#   نویسی برنامه

334

ائتلاف بین المللی به دلیل نیاز به یک شمای کدگذاری جهانی، مشخصه ی یونیکد را پیشنهاد دادند. در حال حاضر آن یک

نوع برنامه و نوع زبان ، PlatForm استاندارد جهانی است که برای هر کاراکتر یک عدد منحصر به فرد تعریف می کند. نوع

مهم نیست.

-1-1-20 یونیکد

به طور کامل استاندارد یونیکد را پشتیبانی می کند. نمایش داخلی یک کاراکتر، یک عدد صحیح بدون علامت 16 بیتی .NET

است، که شمای کدگذاری یونیکد را پیروی می کند. یک کاراکتر دو بایتی می تواند 65535 مقدار مختلف ارائه دهد. شکل

1-20 نشان می دهد چرا دو بایت نیاز است.

1- شکل 20

کاراکتر حرف بزرگ سمت چپ، یک عضو از مجموعه کاراکتر پایه لاتین است که 128 کاراکتر اسکی اصلی را در بر م یگیرد.

مقدار دهدهی 75 می تواند در یک بایت قرار گیرد. بیت های بی نیاز صفر قرار داده می شوند. با این وجود سه کاراکتر بعدی

مقادیری در محدودة 310 تا 56609 دارند که حداقل به دو بایت حافظه نیاز دارند.

کاراکترهای یونیکد یک مشخصه ی منحصر به فرد متشکل از یک نام و مقدار دارند. نسخه جاری یونیکد 96382 کاراکتر

تعریف می کند. این کاراکترها در بیشتر از 130 مجموعه کاراکتر گروه بندی شد هاند، که حروف الفبای زبا نها، سمب لهای

اشکال جغرافیایی، الفباء نابینایان و کاربردهای دیگر را شامل هستند. ،OCR ، ریاضی، موزیک

چون 16 بیت نمی تواند 100000 کاراکتر جهانی را پشتیبانی کنند، برای بعضی از مجموعه کاراکترها بایتهای بیشتری مورد نیاز

است. راه حل یونیکد، مکانیزم تعریف یک کاراکتر با دو مجموعة 16 بیتی است. این زوج کد، یک زوج جانشین 1نامیده

می شوند. جانشین بالا و پایین یک کاراکتر انتزاعی 32 بیتی را به یک 16 بیتی نگاشت می کنند. این روش بیش از 100000

کاراکتر را پشتیبانی می کند. جانشین ها از مقادیری که در فضای بالای یونیکد هستند، ساخته می شوند و با کاراکترهای

واقعی اشتباه نم یشوند.

.NET و کلا سهای API به عنوان یک توسعه دهنده، می توانید جزئیات کاراکترهای 16 یا 32 بیتی را در نظر نگیرند، چون

جزئیات اصلی نمایش کاراکترهای یونیکد را اداره می کنند. اما زمانیکه می خواهید یک رشته را به صورت بایت به بایت در یک

یک شی خاص برای طی کردن بایت ها فراهم می کند. .NET ، جریان بنویسید. تشخیص جانشین ها ضروری است. بدین منظور

نکته: اگر کامپیوتر شما یک فونت برای پشتیبانی کاراکترهای یونیکد را داشته باشد، م یتواند آنها را نمایش دهید. در

یک فونت مربوط به یونیکد را نصب کنید. برنام ههای کنسولی ttfext.exe سیستم عامل ویندوز م یتوانید با استفاده از

نم یتوانند کاراکترهای یونیکد را چاپ کنند، چون خروجی کنسول همواره در یک سبک حروف نامتناسب نمایش داده

م یشود.

1 Surrogate

#C فصل بیستم دستکاری متن دز

335

-2-1-20 کار با کاراکترها

تعداد کمی عضو char نمایش داده می شود. ساختار Char یا کلاس char یک کاراکتر واحد به صورت یک ساختار .NET در

برای تبدیل کردن و بازرسی مقدار آنها تعریف می کند. اکنون مروری گذرا بر بعضی از عملیات استاندارد کاراکتر داریم.

char انتساب یک مقدار به یک نوع داده ی

در char با یک مقدار حرفی است. با این وجود، چون یک مقدار ،char واضح ترین روش انتساب یک مقدار به یک متغیر

درون به صورت یک عدد نمایش داده م یشود، می توانید یک مقدار عددی نیز به آن انتساب دهید. اینها مثال هایی هستند.

string klm = "KLM";

byte b = 75;

char k;

// Different ways to assign 'K' to variable K

k = 'K';

k = klm[0]; // Assign "K" from first value in klm

k = (char) 75; // Cast decimal

k = (char) b; // cast byte

k = Convert.ToChar(75); // Converts value to a char

به یک مقدار عددی Char تبدیل یک مقدار

زمانی که یک کاراکتر به یک عدد تبدیل می شود، نتیجه ی آن مقدار یونیکد کاراکتر است. قال ب بندی، مؤثرترین روش انجام

یک رقم می باشد و شما می خواهید char

/ 0 نظر / 58 بازدید