C# String - Mohamed Ahmed Awad @loyour - Inc
C# String - Mohamed Ahmed Awad @loyour - Inc
1
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
مقدمة
العلم .أج ُل الفضائل ،وأشرف المزايا ،وأعز ما يتحلى به االنسان ،فهو أساس الحضارة ،ومصدر أمجاد األمم ،وعنوان
سموها وتفوقها في الحياة ،ورائدها إلى السعادة األبدية ،وشرف الدارين ،والعلماء .هم ورثة األنبياء،
وخزان العلم ،ودعاة الحق ،وأنصار الدين ،يهدون الناس إلى معرفة هللا وطاعته ،ويوجهونهم وجهة َّ
الخير والصالح.
من أجل ذلك تـــــظافرة اآليـات واألخبـار على تـكريم العلم والعلـماء ،واإلشادة بمقامــــهما الرفيـــــع.
قــــــــــــــــال تعـــالــى" :قل هل يستوي الذين يعلمون والذين ال يـعلمون".
وقال تعالى" :يرفع هللا الذين امنوا منكم والذين أوتوا العلم درجات".
السالم عليكم ورحمة هللا وبركاته ،أحببت أن أشارك معكم هذه المعلومات البسيطة والمهمة لكل مبرمج .كما
نعرف ال يوجد برنامج يخلو من النصوص أو Stringsلهذا السبب علينا تعلم كيف نتعامل معها حيث تقــدم
لنا بيئة MS-.NETالكثيـــر من المميزات لتسهيل هذه الـعملية ،وان شــاء هللا سنتــــطرق الي لغة من لـغات
المستـوي العالـي وقد أثبتت قدرتهـا في التـعامل مع أنـظمة التشـغيل المخـتلفة ولها دعـم كـــــبير من شركـة
مايكروسوفت وهي لغة سي شــارب ،فـي هذا الجزء سنتناول أشياء بسيطة للمــبتدئين وكل العمل سيتم علي
شاشة الدوس أو Consoleفقط لنتعلم وظيفة كل وسيلة وكيف يمكنها أن تفيدنا ،وسيتم الشرح بطرية سلسة
ومبسطة .حتى ال أطيل عليكم في المقدمة ،سيكون نظام الشرح عبارة عن مثــال وشــرح وسؤال للتـأكد من
فهمك بشكل صحيح ويفضل أن تقوم بالتدرب بعد كل مثال لتثبيت الفكرة (عن طريق عمل مثال خاص بك).
-هذا الكتاب وارد به األخطاء ألنه مجهود شخصي -
2
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
في السطر األول :قمنا بتعريف ثابت وليس متغير من نوع Stringوأعطيناه قيمة " " Mohamed Ahmed Awad
توضيح
"" Mohamed Ahmed Awad " >> Trim() >> "Mohamed Ahmed Awad
سؤال
?? >> )(" You are coder? . " >> Trim
3
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
كما نري م حذف المسافة في بداية النص فقط وترك المسافة في نهاية النص حيث كان الناتج
"Mohamed Ahmed Awad "
سؤال
" You are coder? . " >> TrimEnd()>> ??
4
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
.2شرح
ToUpper() ثانيا ً استعمال
ABC الي حروف كبيرةabc كل ما تقوم به هو تحويل الحروف الصغيرة
:لدينا كود بسيط مثل هذا
const string name = "Mohamed Ahmed Awad";
Console.WriteLine(name.ToUpper());
Console.ReadLine();
توضيح
" MOHAMED AHMED AWAD" >> ToUpper() >> " MOHAMED AHMED AWAD"
. الحروف الصغيرة فقط تكون كبيرة،كما نري يتم تجاوز الحروف الكبيرة
سؤال
" You are coder? . " >> ToUpper() >> ??
سؤال
"CSHARP" >> ToUpper() >> ??
5
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
.3شرح
ToLower() ثالثا ً استعمال
.abc الي صغيرةABC حيث تقوم بتحويل الحروف الكبيرةToUpper هي عكس
:لدينا كود بسيط مثل هذا
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() >> ??
6
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
شرح.4
رابعا ً استعمال )(.Replace
بالعربية ..نعم إنها تعني استبدال. Replace ماذا تعني
نحتاج توضيح أكثر سنستبدل ماذا بــماذا؟؟
هي بكل بساطه علي الصيغة األتية:
توضيح
;("ضع مكانه هذا " ",إحذف هذا "(String.Repace
شـــرح
;"const string name = "Example number one
;))"Console.WriteLine(name.Replace("one","two
;)(Console.ReadLine
one بعدما أعطينا المترجم أمر الطباعة في السطر الثاني بشرط استبدال twoبــ
سيقوم المترجم بحذف كلمة oneووضع كلمة twoبدل منها وسيكون الناتج هكذا:
7
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
هام جدا
يمكن إرفاق أكثر من وسيلة في نفس السطر إلجراء أكثر من عملية تعديل للنص بشكل مختصر...
مثالً لدينا هذا الكود.
توضيح :مهم
;"string name = " Example number one
;)"name = name.Replace("one","two
;)(name = name.ToUpper
;)(name = name.Trim
;)Console.WriteLine(name
;)(Console.ReadLine
السطر األول :تم تعريف متغير اسمة nameمن نوع Stringوأعطيناه القيمة "" Example number one
السطر الثاني :قلنا للمترجم أن يغير قيمة المتغير nameالي فيمه المتغير nameولكن بعد حذف oneووضع
مكانها .twoقيمة المتغير nameاألن = "" Example number two
السطر الثالث :قلنا للمترجم أن يغير قيمة المتغير nameالي فيمه المتغير nameولكن بعد تحويل حروفه الصغيرة
الي حروف كبيرة حيث استعملنا .ToUpperوهنا أصبحت قيمة " EXAMPLE NUMBER TWO" = name
السطر الرابع :قلنا للمترجم أن يغير قيمة المتغير nameالي فيمه المتغير nameولكن بعد حذف المسافة في البداية
والنهاية حتى تصبح قيمة "EXAMPLE NUMBER TWO" = name
لحسن الحظ بيشة الدوت نت توفر طريقة أفضل من هذه (أنا ال أقصد أن هذه لست طريقة سليمة) ولكن يوجد بالفعل
8
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
توضيح :مهم
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ملحوظة:
لغة CSharpأو C#تميز بين حالة األحرف مثال ال يمكن كتابة Nameبدل name
Replace وال يمكن كتابة replaceبدل
كما أنه ال يمكن مثالً األعالن عن متغير أسمة " " Consoleألن مايكروسوفت اختارت هذه الكلمة وأصبحت كلمة محجوزة في
لغة سي شارب.
شرح.5
9
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
توضيح
)string.Compare(Text1, Text2
كما تري لدينا نصين في هذا الكود ,سيقوم المترجم بالمقارنة بينهم
وسيطبع على الشاشة قيمة من ثالث قيم (.)0 / 1 / -1
إذا قام بطباعة صفر :يكون حينها النصين متشابهان تمام ًا.
إذا قام بطباعة واحد :يكون النصان مختلفان بحيــث Text1أكبر من .Text2
طباعة سالــب واحد :يكون النصان مختلفان بحيــث Text2أكبر من .Text1
مثال
;"string name = "Hello world.",name2="Hello world.
;))Console.WriteLine(string.Compare(name, name2
;)(Console.ReadLine
كما نري في السطر األول تم تعرف متغيرين مع ًا وإعطاء القيم في نفس السطر.
وفي السطر الثاني أعطينا أمر طباعة قيمة (مقارنة) النصين nameو name2
نتيجة هذا الكود ستكون صفر ،كما قلنا النصين متشابهين.
شرح.5
10
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
توضيح
Name = string.Concat(Text1, Text2, Text3, Text4)
مثال
string name = "Hello ",name2="world.";
Console.WriteLine(string.Concat(name, name2, " useing", " Concat", "Method"));
Console.ReadLine();
.)كما نري سيقوم المترجم بوضع هذه القيم الي جانب بعضها (يبدأ المترجم من اليسار الي اليمين
Hello world. useing Concat Method :ويكون الناتج
...تقريبا كل شيء واضح األن
.6شرح
11
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
مثال
;"string name = "world", name2 = "world
;))Console.WriteLine(string.Equals(name,name2
;)(Console.ReadLine
في هذه الحالة سيتم طباعة Trueعلى الشاشة ألن قيمة nameهي نفس قيمة .name2
وإذا اختلفت قيمة nameعن name2ستتم طباعة False
مثال
;"string name = "world", name2 = "world
)if (name == name2
;)"Console.WriteLine("Good
)if (name != name2
;)"Console.WriteLine("Bad
;)(Console.ReadLine
شرح7
12
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
ألنها ستفي بالغرض وتعطينا قيمة Trueفي حالة وجود الكلمة في النص الطويل أو Falseفي حالة عدم وجود الكلمة.
مثال
;"string name = "world", name2 = "world is good
;))(Console.WriteLine(name2.Contains(name).ToString
;)(Console.ReadLine
كما نري وجود جملة في المتغير name2ولدينا كلمة worldفي المتغير ,nameما نريد فعله األن هو تعلم كيـــف
نتأكد من وجود الكلمة بداخل النص.
في السطر الثاني أصدرنا أمر الطباعة كالعاده ,وبعدها قلنا للمترجم أن يطبع لنا الناتج بعد فحص النصين (المتغيرين)
واذا وجد قيمة المتغير nameموجوده بداخل قيمة المتغير name2سيطبع لنا .Trueألن Containsترجع لنا قيمة
من نوع Boolولهذا السبب تم استخدام ToStringلتحويل الـ Boolالي ( Stringيمكن عدم كتابتها في برامج ..)Console
مثال
;"string name = "world is good
;))(Console.WriteLine(name.Contains("Hello").ToString
;)(Console.ReadLine
أما في هذا المثال سيقوم المترجم بالبحث عن كلمة Helloبداخل قيمة المتغير nameوهي ""world is good
وكما نري كلمة Helloغير موجودة في جملة " "world is goodلهذا سيرجع لنا النتيجة ........False
13
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
توضيح
; string z = string.Empty
;"" = string c
; string v = null
;)Console.WriteLine(z + c + v
كما نري قمنا بـاالعالن عن المتغير zوأعطيناه قيمة نص فارغ وايضا ً المتغير cنفس الشيء.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
توضيح
;"string x = "C:\user
;)(Console.ReadLine
14
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
استخدام Insert
وهي وظيفتها إدراج نص في وسط نص أخر أو في المكان الذي تقوم بتحديده.
توضيح
;"string str = "We are testing in CSharp
;" string ins = "Insert
;)string str = str.Insert(15, ins
;)Console.WriteLine(str
في السطر الثالث قلنا للمترجم أن يقوم بتغيير قيمة strالي :قيمة strولكن بعد وضع قيمة المتغير insبعد 15حرف
حتى يصبح الناتجThis is CSharp Insert Test :
كما نري تم ادراج كلمة Insertبعد 15حرف (نبدأ العد دائما ً في أي لغة برمجة من الصفر -.والمسافة تعتبر حرفا ً).
15
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC
الختام.
الحمد هلل قد وصلنا لنهاية الجزء األول من الكتاب لتعلم أساسيات التعامل مع النصوص في لغة .CSharp
وأنصح جميع المبرمجين بالتركيز على القيام بمشاريع حتى لو كانت قديمة ومكرره ولكن كل ما نريده هنا
هو تعلم فن التطبيق العملي واكتساب الخبرة.
ما فائدة أن تكون عبقري في البرمجة وأنت لم تفدني كمستخدم بأي شيء.
16