Transcript
Page 1: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

1

Page 2: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

2

مقدمةأجل الفضائل، وأشرف المزايا، وأعز ما يتحلى به االنسان، فهو أساس الحضارة، ومصدر أمجاد األمم، وعنوان العلم.

هم ورثة األنبياء، .والعلماء، الدارينسموها وتفوقها في الحياة، ورائدها إلى السعادة األبدية، وشرف

ان العلم، ودعاة الحق، وأنصار الدين، يهدون الناس إلى معرفة هللا وطاعته، ويوجهونهم وجهة وخز

.الخير والصالح

.عـــــهما الرفيــــماء، واإلشادة بمقامـكريم العلم والعلـار على تـواألخب اتـاآلي ظافرةـــــمن أجل ذلك ت

". علمونـقل هل يستوي الذين يعلمون والذين ال يى: "ــالـــل تعاــــــــــــــــق

."يرفع هللا الذين امنوا منكم والذين أوتوا العلم درجاتتعالى: " وقال

، أحببت أن أشارك معكم هذه المعلومات البسيطة والمهمة لكل مبرمج. كماالسالم عليكم ورحمة هللا وبركاته

لهذا السبب علينا تعلم كيف نتعامل معها حيث تقــدم Stringsنعرف ال يوجد برنامج يخلو من النصوص أو

الـعملية، وان شــاء هللا سنتــــطرق الي لغة من لـغات ر من المميزات لتسهيل هذه ـــالكثي MS-.NETلنا بيئة

التشـغيل المخـتلفة ولها دعـم كـــــبير من شركـةالمستـوي العالـي وقد أثبتت قدرتهـا في التـعامل مع أنـظمة

مايكروسوفت وهي لغة سي شــارب، فـي هذا الجزء سنتناول أشياء بسيطة للمــبتدئين وكل العمل سيتم علي

ة تفيدنا، وسيتم الشرح بطرية سلس وكيف يمكنها أن وسيلةكل فقط لنتعلم وظيفة Consoleشاشة الدوس أو

أطيل عليكم في المقدمة، سيكون نظام الشرح عبارة عن مثــال وشــرح وسؤال للتـأكد منومبسطة. حتى ال

فهمك بشكل صحيح ويفضل أن تقوم بالتدرب بعد كل مثال لتثبيت الفكرة )عن طريق عمل مثال خاص بك(.

-هذا الكتاب وارد به األخطاء ألنه مجهود شخصي -

الطالب/ محمد أحمد عوض.

@LOYOUR_INC

Page 3: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

3

دأ علي بركة هللا.نب

.1شرح

ماهي وما وظيفتها؟ ()Trimأوال

هي تقوم بحذف المسافات في بداية ونهاية النص.

مثال:

مثل هذا: لدينا كود بسيط

" Mohamed Ahmed Awad "وأعطيناه قيمة Stringوليس متغير من نوع ثابتقمنا بتعريف :في السطر األول

في بداية ونهاية الجملة. الحظ وجود المسافة

( وقلنا للمترجم اطبع لناWriteLineConsole.: كتبنا أمر الطباعة على شاشة الدوس )في السطر الثاني

؟؟ nameللنص Trimله. إذا ماذا ستفعل Trimولكن بعد عمل nameما بين االقواس وهو الثابت

هي ستقوم بحذف المسافة في بداية ونهاية النص.

حتى االن هيا لنري اختبار كل شيء بسيط

const string name = " Mohamed Ahmed Awad "; Console.WriteLine (name.Trim()); Console.ReadLine();

توضيح" Mohamed Ahmed Awad " >> Trim() >> "Mohamed Ahmed Awad"

سؤال" You are coder? . " >> Trim() >> ??

Page 4: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

4

" TrimEnd" و "TrimStartملحوظة: يوجد أيضا "

تحذف المسافات في بداية النص. TrimStartيمكن القول باختصار أن

تحذف المسافات في نهاية النص. TrimEndوالعكس أن

لدينا كود بسيط مثل هذا:

كما نري م حذف المسافة في بداية النص فقط وترك المسافة في نهاية النص حيث كان الناتج

""Mohamed Ahmed Awad

لدينا مثال أخر:

.EndTrimفي النهاية فقط ألننا استخدمنا وهنا تم حذف المسافة الموجودة

"Mohamed Ahmed Awad"وكان الناتج :

تحقق من فهمك!

const string name = " Mohamed Ahmed Awad "; Console.WriteLine (name.TrimStart()); Console.ReadLine(); //OUTPUT = "Mohamed Ahmed Awad "

const string name = " Mohamed Ahmed Awad "; Console.WriteLine (name.TrimEnd()); Console.ReadLine(); //OUTPUT = " Mohamed Ahmed Awad"

سؤال" You are coder? . " >> TrimEnd()>> ??

Page 5: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

5

.2شرح

()ToUpperثانيا استعمال

ABCالي حروف كبيرة abcكل ما تقوم به هو تحويل الحروف الصغيرة

لدينا كود بسيط مثل هذا:

وتم توضيحه من قبل. nameالسطر األول ينم في تعريف الثابت

له. ToUpperولكن بعد عمل nameالسطر الثاني تم وضع أمر الطباعة وبعدها قلنا له اطبع لنا

الصغيرة فقط تكون كبيرة.كما نري يتم تجاوز الحروف الكبيرة، الحروف

const string name = "Mohamed Ahmed Awad"; Console.WriteLine(name.ToUpper()); Console.ReadLine();

توضيح"Mohamed Ahmed Awad" >> ToUpper() >> "MOHAMED AHMED AWAD"

توضيح" MOHAMED AHMED AWAD" >> ToUpper() >> " MOHAMED AHMED AWAD"

سؤال" You are coder? . " >> ToUpper() >> ??

سؤال"CSHARP" >> ToUpper() >> ??

Page 6: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

6

.3شرح

()ToLowerاستعمال ثالثا

. abcالي صغيرة ABCحيث تقوم بتحويل الحروف الكبيرة ToUpperهي عكس

لدينا كود بسيط مثل هذا:

شرحنا السطر األول مسبقا.

ToLowerبعد تحويله الي حروف صغيرة nameطباعة الثابت والسطر الثاني أمر

كما نري كل ما يتأثر هو الحروف الكبيرة فقط حيث تتحول إلي صغيرة مع تفادي الحروف الصغيره ونقلها

كما هي.

const string name = "Mohamed Ahmed Awad"; Console.WriteLine(name.ToLower()); Console.ReadLine();

توضيح"Mohamed Ahmed Awad" >> ToLower() >> "mohamed ahmed awad"

توضيح" MOHAMED AHMED AWAD" >> ToLower() >> " mohamed ahmed awad"

سؤال" You are coder? . " >> ToLower() >> ??

سؤال"CSHARP" >> ToLower() >> ??

Page 7: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

7

.4شرح

.Replace()استعمال رابعا

تعني استبدال. نعم إنها.. بالعربية Replaceذا تعني ما

نحتاج توضيح أكثر سنستبدل ماذا بــماذا؟؟

هي بكل بساطه علي الصيغة األتية:

أعتقد تم تبسيط كل شيء األن.

لنري مثال بسيط ونقوم بشرحه:

one بــ twoبعدما أعطينا المترجم أمر الطباعة في السطر الثاني بشرط استبدال

بدل منها وسيكون الناتج هكذا: twoووضع كلمة oneجم بحذف كلمة المتر سيقوم

Example number two

توضيح

")String.Repaceإحذف هذا ","ضع مكانه هذا ");

شـــرح const string name = "Example number one"; Console.WriteLine(name.Replace("one","two")); Console.ReadLine();

سؤال: ما ناتج هذا الكود؟ const string name = " Example number one"; Console.WriteLine(name.Replace(" ","")); Console.ReadLine();

Page 8: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

8

هام جدا

يمكن إرفاق أكثر من وسيلة في نفس السطر إلجراء أكثر من عملية تعديل للنص بشكل مختصر...

مثال لدينا هذا الكود.

"Example number one "وأعطيناه القيمة Stringمن نوع name: تم تعريف متغير اسمة السطر األول

ووضع oneولكن بعد حذف nameالي فيمه المتغير nameقلنا للمترجم أن يغير قيمة المتغير : السطر الثاني

two" Example number"األن = name. قيمة المتغير twoمكانها

ولكن بعد تحويل حروفه الصغيرة nameالي فيمه المتغير name: قلنا للمترجم أن يغير قيمة المتغير السطر الثالث

name ="TWO" EXAMPLE NUMBER. وهنا أصبحت قيمة ToUpperالي حروف كبيرة حيث استعملنا

ولكن بعد حذف المسافة في البداية nameالي فيمه المتغير name: قلنا للمترجم أن يغير قيمة المتغير السطر الرابع

name ="TWO"EXAMPLE NUMBERتصبح قيمة حتىوالنهاية

لحسن الحظ بيشة الدوت نت توفر طريقة أفضل من هذه )أنا ال أقصد أن هذه لست طريقة سليمة( ولكن يوجد بالفعل

توضيح: مهم string name = " Example number one"; name = name.Replace("one","two"); name = name.ToUpper(); name = name.Trim(); Console.WriteLine(name); Console.ReadLine();

Page 9: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

9

أفضل وأسهل وأسرع إلنجاز هذه العملية...طريقة

الوسائل التي نريدها في سطر واحد.فقط نضع كل

مثال:

هل تري البساطة!!

.حتي لم نعلن عن متغير وكل شيء تم في نفس سطر الطباعة.

: جميع العمليات تتم بالترتيب من اليسار الي اليمين...ملحوظة

ويكون الناتج في هذا الكود هو نفس الناتج في الكود السابق متعدد األسطر.

name ="TWO"EXAMPLE NUMBER

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ملحوظة:

nameبدل Nameتميز بين حالة األحرف مثال ال يمكن كتابة #Cأو CSharpلغة

Replaceبدل eplacerن كتابة وال يمك

مايكروسوفت اختارت هذه الكلمة وأصبحت كلمة محجوزة في ألن " Consoleكما أنه ال يمكن مثال األعالن عن متغير أسمة "

سي شارب.لغة

.5شرح

توضيح: مهم const string name = " Example number one"; Console.WriteLine(name.Replace("one","two").ToUpper().Trim());

.ReadLine();Console

Page 10: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

10

.Compare()استعمال خامسا

.الصيغة األتيةتستخدم للمقارنة بين نصين. وتكون على

كما تري لدينا نصين في هذا الكود , سيقوم المترجم بالمقارنة بينهم

(. / 1 / 0-1وسيطبع على الشاشة قيمة من ثالث قيم )

إذا قام بطباعة صفر: يكون حينها النصين متشابهان تماما.

.Text2أكبر من Text1إذا قام بطباعة واحد: يكون النصان مختلفان بحيــث

.Text1أكبر من Text2طباعة سالــب واحد: يكون النصان مختلفان بحيــث

مثال لدينا هذا الكود.

يرين معا وإعطاء القيم في نفس السطر.كما نري في السطر األول تم تعرف متغ

name2و nameوفي السطر الثاني أعطينا أمر طباعة قيمة )مقارنة( النصين

، كما قلنا النصين متشابهين.صفرنتيجة هذا الكود ستكون

.5شرح

توضيح)Text2, Text1.Compare(string

مثال string name = "Hello world.",name2="Hello world."; Console.WriteLine(string.Compare(name, name2)); Console.ReadLine();

سؤال: ما ناتج هذا الكود؟ string name = "String world.",name2="String Wordd. "; Console.WriteLine(string.Compare(name, name2)); Console.ReadLine();

Page 11: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

11

.Concat()خامسا استعمال

, وتكون علي الصيغة األتية.وظيفة هذه الدمج بين النصوص

وسيكون الناتج هو وضع هذه النصوص جنبا الي جنب.

مثال لدينا هذا الكود.

كما نري سيقوم المترجم بوضع هذه القيم الي جانب بعضها )يبدأ المترجم من اليسار الي اليمين(.

Hello world. useing Concat Methodويكون الناتج:

تقريبا كل شيء واضح األن...

.6شرح

توضيح), Text3, Text4Text2, Text1(Concat.string= Name

وتساوي نفس هذا الكود:

Text4 +Text3 +Text2+ Text1me = Na

مثالstring name = "Hello ",name2="world."; Console.WriteLine(string.Concat(name, name2, " useing", " Concat", "Method"));

Console.ReadLine();

سؤال: ما ناتج هذا الكود؟string name = "Hello",name2 = "world"; Console.WriteLine(string.Concat(name1, " useing", ".Concat", "Method"));

Console.ReadLine();

Page 12: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

12

.Equals()استعمال سادسا

في حين تشابه النصين أو قيمة Trueولكن هذه تعطينا فقط قيمة Compareربما تراها مشابهة بعض الشيء مع

False .في حال إختالف النصين

وصياغتها تكون كالتالي:

.name2هي نفس قيمة nameعلى الشاشة ألن قيمة Trueفي هذه الحالة سيتم طباعة

Falseستتم طباعة name2عن nameوإذا اختلفت قيمة

للتحقق من تساوي المتغيرين، ifفي السطر الثاني تم وضع شرط

.Bad. وفي حين اختالف قيمتيهما تتم طباعة Goodوفي حين تسوي قيمة المتغيرين يقوم بطباعة

يقوم المترجم بتنفيذ السطر األول الموجود أسفل الشرط. Ifمع الشرط {}عدم وضع االقواس مالحظة: في حين

. ≠( نعني بها =!وهذه العالمة )

7شرح

مثال string name = "world", name2 = "world"; Console.WriteLine(string.Equals(name,name2)); Console.ReadLine();

مثال string name = "world", name2 = "world"; if (name == name2) Console.WriteLine("Good"); if (name != name2) Console.WriteLine("Bad"); Console.ReadLine();

Page 13: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

13

.Contains()سابعا استعمال

Containsافترضنا وجود نص طويل ونريد أن نتأكد من وجود كلمة معينه بداخة. عندها يجب استعمال الوسيلة إذا

في حالة عدم وجود الكلمة. Falseفي حالة وجود الكلمة في النص الطويل أو Trueوتعطينا قيمة ألنها ستفي بالغرض

, ما نريد فعله األن هو تعلم كيـــفnameفي المتغير worldولدينا كلمة name2كما نري وجود جملة في المتغير

النص.نتأكد من وجود الكلمة بداخل

قلنا للمترجم أن يطبع لنا الناتج بعد فحص النصين )المتغيرين( في السطر الثاني أصدرنا أمر الطباعة كالعاده, وبعدها

ترجع لنا قيمة Contains. ألن Trueسيطبع لنا name2موجوده بداخل قيمة المتغير nameواذا وجد قيمة المتغير

..(Console)يمكن عدم كتابتها في برامج Stringالي Boolلتحويل الـ ToStringولهذا السبب تم استخدام Boolمن نوع

"world is good"وهي nameقيمة المتغير بداخل Helloأما في هذا المثال سيقوم المترجم بالبحث عن كلمة

........Falseلهذا سيرجع لنا النتيجة "world is good"غير موجودة في جملة Helloوكما نري كلمة

8شرح

مثال string name = "world", name2 = "world is good"; Console.WriteLine(name2.Contains(name).ToString()); Console.ReadLine();

مثال string name = "world is good"; Console.WriteLine(name.Contains("Hello").ToString()); Console.ReadLine();

سؤال: ما ناتج هذا الكود؟ string x = "R"; if ("Iam now testing..".Contains("Now")) Console.WriteLine(x);

Page 14: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

14

Empty stringقيمة نصيه فارغة

عن متغير بقيمة نصية فارغة بأكثر من طريقة.يمكن اإلعالن

نفس الشيء. cوأعطيناه قيمة نص فارغ وايضا المتغير zكما نري قمنا بـاالعالن عن المتغير

Nothing( أو ال شيءمعناها هنا ) nullوبالنسبة لــ

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

أريد طرح سؤال؟

لماذا هذا الود غير صحيح!

..:user"\"Cوأعطيناه قيمة xاسمه stringقمنا بتعريف متغير من نوع

وجود الخطأ؟؟حسننا لما

( بطريقة خاصه, تبعا للحرف الذي سيأتي بعدها.\في لغة سي شارب المترجم يتعامل مع هذه العالمه )

( تعني سطر جديد.n\مثال )

هذه المشكلة؟؟كيف نحل

ببساطة: عند تعريف المتغير يكون بهذه الطريقة

;"string x = @"C:\user حتي يعرف المترجم أن هذا نص بالكامل.

9شرح

توضيح string z = string.Empty; string c = ""; string v = null;

Console.WriteLine(z + c + v);

توضيح string x = "C:\user"; Console.ReadLine();

Page 15: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

15

Insertاستخدام

.وهي وظيفتها إدراج نص في وسط نص أخر أو في المكان الذي تقوم بتحديده

حرف15بعد insولكن بعد وضع قيمة المتغير strالي: قيمة strتغيير قيمة في السطر الثالث قلنا للمترجم أن يقوم ب

This is CSharp Insert Testحتى يصبح الناتج:

-)نبدأ العد دائما في أي لغة برمجة من الصفر.حرف 15بعد Insertكما نري تم ادراج كلمة .(والمسافة تعتبر حرفا

توضيح string str = "We are testing in CSharp"; string ins = "Insert "; string str = str.Insert(15, ins); Console.WriteLine(str);

Page 16: c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4 "TrimEnd" و "TrimStart" ًاضيأ دجوي :ةظوحلم صنلا ةيادب يف

C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

16

الختام.

.CSharpالحمد هلل قد وصلنا لنهاية الجزء األول من الكتاب لتعلم أساسيات التعامل مع النصوص في لغة

وأنصح جميع المبرمجين بالتركيز على القيام بمشاريع حتى لو كانت قديمة ومكرره ولكن كل ما نريده هنا

هو تعلم فن التطبيق العملي واكتساب الخبرة.

ما فائدة أن تكون عبقري في البرمجة وأنت لم تفدني كمستخدم بأي شيء.

يمكنك التواصل معي في حين وجود أي استفسار:

[email protected]

.محمد أحمد أحمد عبده عوضالطالب/

طالب في الصف الثانوي.

أعمل في مجال حماية األنظمة.

السالم عليكم ورحمة هللا وبركاته


Recommended