of 16 /16
C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 1

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

  • Author
    others

  • View
    0

  • Download
    0

Embed Size (px)

Text of c# STRING – MOHAMED AHMED AWAD @loyour INC · C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC 4...

  • C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

    1

  • C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

    2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @LOYOUR_INC

  • 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() >> ??

  • 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()>> ??

  • 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() >> ??

  • 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() >> ??

  • 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();

  • 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();

  • 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

  • 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();

  • 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();

  • 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();

  • 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);

  • 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();

  • 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);

  • C# STRING – MOHAMED AHMED AWAD @LOYOUR_INC

    16

    الختام.

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

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

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

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

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

    [email protected]

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

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

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

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

    mailto:[email protected]