الأربعاء، 27 نوفمبر 2013

أساسيات البرمجة سي شارب - C# - Strings السلاسل النصية

C# - Strings السلاسل النصية

أساسيات البرمجة سي شارب - C# - Strings السلاسل النصية
الصورة من موقع
https://www.codevscolor.com/c-sharp-compare-two-strings

أساسيات البرمجة سي شارب - C# - Strings السلاسل النصية

السلاسل النصية رغم عند اسناد القيمة لمتغير نصي فانه يبدو كانك قم بتعريف متغير ذات القيمة مثل المتغيرات العادية ولكن الحقيقة هي ان السلاسل النصية هي بيانات ذات المرجع ويمكنك تعريف سلسلة نصية في مصفوفة. السلاسل النصية مشتقة من الفئة system.string.

إنشاء كائن سلسلة نصية :-

  1. عن طريق اسناد حرف نصي الى متغير نصي.
  2. باستخدام مشيد الفئة system.string lay.
  3. مشغل السلسلة النصية (+).
  4. الخصائص والدوال التي تعيد سلاسل نصية.
  5. عن طريق استخدام دالة التحويل البيانات الى نصي.

مثال على السلاسل النصية :-

using System;
namespace StringApplication
{
 class Program
 {
 static void Main(string[] args)
 {
 //جمع نصين
 string fname, lname;
 fname = "Rowan";
 lname = "Atkinson";
 string fullname = fname + lname;
 Console.WriteLine("Full Name: {0}", fullname);
 //من خلال المشيد
 char[] letters = { 'H', 'e', 'l', 'l','o' };
 string greetings = new string(letters);
 Console.WriteLine("Greetings: {0}", greetings);
 //دالة تعيد نص
 string[] sarray = { "Hello", "From", "Tutorials", "Point" };
 string message = String.Join(" ", sarray);
 Console.WriteLine("Message: {0}", message);
 //تحويل من نوع بيانات الى نص
 DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
 string chat = String.Format("Message sent at {0:t} on {0:D}",
 waiting);
 Console.WriteLine("Message: {0}", chat);
 Console.ReadKey() ;
 }
 }
}

مخرجات كود على السلاسل النصية :-

Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

خصائص السلاسل النصية :-

التسلسلالخاصية والوصف
1Chars
تعيد قيمة موضع الحرف النصية من السلاسلة.
2Length
تعيد عدد الحروف في السلسلة النصية.

دوال السلسة النصية:-

التسلسلالدالة واستخدامها
1public static int Compare( string strA, string strB ) 
مقارنة بين سلسلتين نصيتين وتعيد قيمة عدد صحيح اما 0 وتعني غير متساوتين او 1 تعني متساوتين
2public static int Compare( string strA, string strB, bool ignoreCase ) 
تقارنة سلسلة نصية وتعيد فيمة عدد صحيح يشيؤ الى موقع العلاقة بالترتيب ومع ذلك يتجاهل في حال كان البارميتر قيمة منطقية صحيحة

3public static string Concat( string str0, string str1 ) 
يقوم بعملية ربط سلسلتين نصية لتصبح سلسلة واحدة
4public static string Concat( string str0, string str1, string str2 ) 
ربط 3 سلاسل نصية
5public static string Concat( string str0, string str1, string str2, string str3 ) 
ربط اربع سلاسل نصية
6public bool Contains( string value ) 
تعيد قيمة منطقبة اذا كان السلسلة النصية تحتوي على النص 
7public static string Copy( string str ) 
نسخ قيمة النصية الى سلسلة نصية جديدة
8public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 
نسخ نص معين من سلسلة نصية الى سلسلة نصية
9public bool EndsWith( string value ) 
تحديد اذا ماكان السلسة النصية تنتهي بالنص المعطى
10public bool Equals( string value ) 
تحدد اذا كان النص السلسلة النصية تساوي النص المعطى
11public static bool Equals( string a, string b ) 
تحدد اذا ماكان النص ا يساوي النص ب يعيد قيمة منطقية
12public static string Format( string format, Object arg0 ) 
تستبدل فيمة النصية بالنص المعطى
13public int IndexOf( char value ) 
تعيد قيمة الفهرس للحرف النصي المعطى اول حرف تجده في السلسلة
14public int IndexOf( string value ) 
تعيد فهرس اول سلسلة نصية تطابق النص المعطى
15public int IndexOf( char value, int startIndex ) 
تعيد فهرس الحرف بدا من قيمة الفهرس المعطى
16public int IndexOf( string value, int startIndex ) 
تعيد فهرس النص بدا من الفهرس المعطى
17public int IndexOfAny( char[] anyOf ) 
يعيد قيمة فهرس اي حرف يجيدها في مصفوفة النصوص
18public int IndexOfAny( char[] anyOf, int startIndex ) 
يعيد قيمة فهرس اي حرف يجدها في مصفوفة النصوص بدا من الفهرس المعطى
19public string Insert( int startIndex, string value ) 
ادراج نص الى السلسلة النصية بدا من الفهرس المعطى
20public static bool IsNullOrEmpty( string value ) 
يحدد هل النص قيمة فارغة او خالي لا يحتوي على نص
21public static string Join( string separator, params string[] value ) 
يقوم بربط نصوص معا
22public static string Join( string separator, string[] value, int startIndex, int count ) 
ربط نصوص بدا من الفهرس المعطى
23public int LastIndexOf( char value ) 
يعيد قيمة الفهرس للحرف الذي يجده في اخر السلسلة
24public int LastIndexOf( string value ) 
يعيد قيمة الفهرس للنص الذي يجده في اخر السلسلة
25public string Remove( int startIndex ) 
حذف نص بدا من الفهرس المعطى
26public string Remove( int startIndex, int count ) 
حذف نص بدا من الفهرس المعطى وبمقدار عدد 
27public string Replace( char oldChar, char newChar ) 
استبدال حرف بحرف
28public string Replace( string oldValue, string newValue ) 
استبدال نص بنص
29public string[] Split( params char[] separator ) 
عملية اقتصاص نص
30public string[] Split( char[] separator, int count ) 
اقتصاص نص بمقدار عدد .
31public bool StartsWith( string value ) 
تعيد قيمة منطقية هل يبدا بالنص المعطى
32public char[] ToCharArray()
يعيد كل الحروف في المصفوفة المعطاة
33public char[] ToCharArray( int startIndex, int length ) 
 يعيد كل الحروف في المصفوفة المعطاة بدا من الفهرس
34public string ToLower()
يعيد نسخة من النص المحول الى الحروف الصغيرة
35public string ToUpper()
يعيد نسخة من النص المحول الى الحروف الكبيرة
36public string Trim()
اقتصاص القيمة الفارغة من بداية السلسلة ونهايتها

مثال على المقارنة بين السلاسل النصية - مقارنة سسلسلتين نصيتين:-

using System;
namespace StringApplication
{
 class StringProg
 {
 static void Main(string[] args)
 {
 string str1 = "This is test";
 string str2 = "This is text";
 if (String.Compare(str1, str2) == 0)
 {
 Console.WriteLine(str1 + " and " + str2 + " are equal.");
 }
 else
 {
 Console.WriteLine(str1 + " and " + str2 + " are not equal.");
 }
 Console.ReadKey() ;
 }
 }
}
مخرجات كود مقارنة السلاسل النصية :-
This is test and This is text are not equal.
البحث هل يحتوي النص على النص المعطى او البحث عن نص في سلسلة.
using System;
namespace StringApplication
{
 class StringProg
 {
 static void Main(string[] args)
 {
 string str = "This is test";
 if (str.Contains("test"))
 {
 Console.WriteLine("The sequence 'test' was found.");
 }
 Console.ReadKey() ;
 }
 }
}
مخرجات كود البحث عن نص في سلسة نصية :-

The sequence 'test' was found.

مثال على اقتصاص نص من سلسلة نصية .

using System;
namespace StringApplication
{
 class StringProg
 {
 static void Main(string[] args)
 {
 string str = "Last night I dreamt of San Pedro";
 Console.WriteLine(str);
 string substr = str.Substring(23);
 Console.WriteLine(substr);
 }
 Console.ReadKey() ;
 }
}
مخرجات كود اقتصاص نص او كلمة من سلسلة نصية:-
San Pedro

ربط ودمج السلاسل النصية - ربط سلسلتين نصيتين.

using System;
namespace StringApplication
{
 class StringProg
 {
 static void Main(string[] args)
 {
 string[] starray = new string[]{"Down the way nights are dark",
 "And the sun shines daily on the mountain top",
 "I took a trip on a sailing ship",
 "And when I reached Jamaica",
 "I made a stop"};
 string str = String.Join("\n", starray);
 Console.WriteLine(str);
 }
 Console.ReadKey() ;
 }
}

مخرجات كود بربط او دمج السلاسل النصية :-
Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a st


مثال على تابع يعيد قيمة الدليل في السلسلة النصية #c سي شارب

void myFunc(char* str, char c)
{
 char* ptr;
 int index;
 ptr = strchr(str, c);
 if (ptr == NULL)
 {
 printf("Character not found\n");
 return;
 }
 index = ptr - str;
 printf("The index is %d\n", index);
 ASSERT(str[index] == c); // Verify that the character at index is the one we want.
}





التسميات: