معالجة السلاسل النصية في Java مع مثال
⚡ ملخص ذكي
معالجة السلاسل النصية في Java يعتمد على فئة String، التي تمثل النص كمصفوفة من الأحرف، وتوفر طرقًا مدمجة مثل الطول، و indexOf، و charAt، و compareTo، و contains، و replace، وتحويل الحالة لمعالجة النص وتحويله بكفاءة.

ما هي السلاسل في Java?
السلسلة بالمعنى الحرفي هي سلسلة من الأحرف. مرحبًا، هل قلت الأحرف، أليس هذا نوعًا بدائيًا من البيانات؟ Java. نعم، لذلك من الناحية الفنية، الأساسية Java السلسلة هي في الأساس مجموعة من الأحرف.
لذلك سلسلتي أعلاه من "ROSE"يمكن تمثيلها على النحو التالي -
لماذا استخدام السلاسل؟
إحدى الوظائف الأساسية لعلوم الكمبيوتر الحديثة هي معالجة اللغة البشرية.
كما أن للأرقام أهمية في الرياضيات، فإن للرموز اللغوية أهمية في المعنى واتخاذ القرارات. ورغم أن ذلك قد لا يكون مرئيًا لمستخدمي الحاسوب، إلا أن الحواسيب تعالج اللغة في الخلفية بدقة متناهية تضاهي دقة الآلة الحاسبة. وتوفر مربعات الحوار المساعدة التعليمات، والقوائم الخيارات، وشاشات عرض البيانات الحالات والأخطاء والتغييرات التي تطرأ على اللغة في الوقت الفعلي.
ك Java أيها المبرمج، ستكون إحدى أدواتك الرئيسية لتخزين اللغة ومعالجتها هي فئة String.
أمثلة على بناء جملة السلسلة
والآن، دعونا ننتقل إلى بعض قواعد الكتابة، ففي النهاية، نحتاج إلى كتابة هذا في Java الكود أليس كذلك.
السلسلة عبارة عن مجموعة من الأحرف، ممثلة على النحو التالي:
//String is an array of characters char[] arrSample = {'R', 'O', 'S', 'E'}; String strSample_1 = new String (arrSample);
من الناحية الفنية، يتم تعريف السلسلة على النحو التالي في المثال أعلاه-
= new (argument);
الآن لا يمكننا دائمًا كتابة سلاسلنا كمصفوفات؛ ومن ثم يمكننا تحديد السلسلة في Java كما يلي:
//Representation of String String strSample_2 = "ROSE";
من الناحية الفنية، يتم تمثيل ما ورد أعلاه على النحو التالي:
= ;
استخدم فئة السلسلة Java يمتد القادم فئة الكائن.
تسلسل السلسلة:
التسلسل هو ربط سلسلتين أو أكثر.
ألقِ نظرة على الصورة أدناه-
لدينا سلسلتين str1 = "Rock" وstr2 = "Star"
إذا قمنا بجمع هاتين السلسلتين، فيجب أن نحصل على نتيجة مثل str3 = "RockStar".
راجع مقتطف الشفرة أدناه، فهو يشرح الطريقتين لتنفيذ عملية دمج السلاسل النصية.
الأول يستخدم "CONCAT"طريقة ""String class"" والثانية تستخدم عامل ""+"" الحسابي. كلتا النتيجتين تؤديان إلى نفس الناتج""
public class Sample_String{ public static void main(String[] args){ //String Concatenation String str1 = "Rock"; String str2 = "Star"; //Method 1 : Using concat String str3 = str1.concat(str2); System.out.println(str3); //Method 2 : Using "+" operator String str4 = str1 + str2; System.out.println(str4); } }
الناتج المتوقع:
RockStar RockStar
مهم Java طرق السلسلة:
دعونا نسأل Java قم بطرح بعض الأسئلة على الفصل ومعرفة ما إذا كان يمكنه الإجابة عليها:
طريقة "طول السلسلة".
كيف يمكنك تحديد طول السلسلة المعطاة؟ لقد قدمت طريقة تسمى "الطول". استخدمها مع السلسلة التي تحتاجها لمعرفة الطول.
public class Sample_String{ public static void main(String[] args){ //Our sample string for this tutorial String str_Sample = "RockStar"; //Length of a String System.out.println("Length of String: " + str_Sample.length());}}
الناتج المتوقع:
Length of String: 8
طريقة "فهرس" السلسلة
إذا كنت أعرف الطول، فكيف يمكنني العثور على الشخصية الموجودة في أي موضع؟ باختصار، كيف يمكنني العثور على فهرس الحرف؟
لقد أجبت بنفسك يا صديقي، هناك طريقة “indexOf” ستساعدك على تحديد مكان حرف معين تقوم بتحديده.
public class Sample_String{ public static void main(String[] args){//Character at position String str_Sample = "RockStar"; System.out.println("Character at position 5: " + str_Sample.charAt(5)); //Index of a given character System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}
الناتج المتوقع:
Character at position 5: t Index of character 'S': 4
طريقة سلسلة "charAt".
على غرار السؤال أعلاه، بالنظر إلى الفهرس، كيف أعرف الشخصية الموجودة في ذلك الموقع؟
مرة أخرى، الأمر بسيط للغاية!! استخدم طريقة "charAt" وقم بتوفير الفهرس الذي تريد العثور على الحرف الخاص به.
public class Sample_String{ public static void main(String[] args){//Character at position String str_Sample = "RockStar"; System.out.println("Character at position 5: " + str_Sample.charAt(5));}}
الناتج المتوقع:
Character at position 5: t
طريقة "المقارنة مع" السلسلة
هل أريد التحقق مما إذا كانت السلسلة التي تم إنشاؤها بواسطة طريقة ما تساوي شيئًا أريد التحقق منه؟ كيف يمكنني مقارنة سلسلتين؟
استخدم الطريقة "compareTo" وحدد السلسلة التي ترغب في مقارنتها.
استخدم "compareToIgnoreCase" في حالة عدم رغبتك في أن تكون النتيجة حساسة لحالة الأحرف.
ستكون النتيجة القيمة 0 إذا كانت سلسلة الوسيطة مساوية لهذه السلسلة؛ قيمة أقل من 0 إذا كانت هذه السلسلة أقل من وسيطة السلسلة من الناحية المعجمية؛ وقيمة أكبر من 0 إذا كانت هذه السلسلة أكبر من وسيطة السلسلة من الناحية المعجمية.
public class Sample_String{ public static void main(String[] args){//Compare to a String String str_Sample = "RockStar"; System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar")); //Compare to - Ignore case System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}
الناتج المتوقع:
Compare To 'ROCKSTAR': -32 Compare To 'ROCKSTAR' - Case Ignored: 0
طريقة "الاحتواء" للسلسلة
أعرف جزئيًا ما الذي يجب أن تحتوي عليه السلسلة، كيف يمكنني التأكد مما إذا كانت السلسلة تحتوي على سلسلة من الأحرف التي أحددها؟
استخدم الطريقة "يحتوي"وحدد الأحرف التي تريد التحقق منها.
سياسات الإرجاع والاستبدال صحيح إذا وفقط إذا كانت هذه السلسلة تحتوي على التسلسل المحدد لقيم char.
public class Sample_String{ public static void main(String[] args){ //Check if String contains a sequence String str_Sample = "RockStar"; System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}
الناتج المتوقع:
Contains sequence 'tar': true
طريقة السلسلة "endsWith".
كيف يمكنني التأكد من انتهاء السلسلة بلاحقة معينة؟ مرة أخرى أجبت عليه. استخدم طريقة "endsWith" وحدد اللاحقة في الوسائط.
سياسات الإرجاع والاستبدال صحيح إذا كان تسلسل الأحرف الذي تمثله الوسيطة هو لاحقة لتسلسل الأحرف الذي يمثله هذا الكائن.
public class Sample_String{ public static void main(String[] args){ //Check if ends with a particular sequence String str_Sample = "RockStar"; System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}
الناتج المتوقع:
EndsWith character 'r': true
طريقة السلسلة "replaceAll" و"replaceFirst".
أريد تعديل سلسلتي في عدة أماكن واستبدال عدة أجزاء من السلسلة؟
Java طرق استبدال السلسلة واستبدال الكل واستبدال الأول. يمكنك تحديد جزء السلسلة الذي تريد استبداله والسلسلة البديلة في الوسائط.
public class Sample_String{ public static void main(String[] args){//Replace Rock with the word Duke String str_Sample = "RockStar"; System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}
الناتج المتوقع:
Replace 'Rock' with 'Duke': DukeStar
خيط Java "إلى أحرف صغيرة" & Java طريقة "الأحرف الكبيرة".
أريد أن تظهر سلسلتي بأكملها بأحرف صغيرة أو بأحرف كبيرة؟
ما عليك سوى استخدام الأساليب "toLowercase()" أو "ToUpperCase()" مقابل السلاسل التي تحتاج إلى تحويل.
public class Sample_String{ public static void main(String[] args){//Convert to LowerCase String str_Sample = "RockStar"; System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase()); //Convert to UpperCase System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}
الناتج المتوقع:
Convert to LowerCase: rockstar Convert to UpperCase: ROCKSTAR
نقاط مهمة يجب ملاحظتها:
- السلسلة هي فئة نهائية; أي بمجرد إنشاء القيمة لا يمكن تغييرها. وبالتالي تسمى كائنات السلسلة غير قابلة للتغيير.
- استخدم Java يقوم الجهاز الظاهري (JVM) بإنشاء موقع ذاكرة خاص بالسلاسل التي يتم استدعاؤها تجمع سلسلة ثابتة. لهذا السبب يمكن تهيئة السلسلة بدون الكلمة الأساسية "الجديدة".
- فئة السلسلة تقع تحت java.lang.String التسلسل الهرمي. ولكن ليست هناك حاجة لاستيراد هذه الفئة. Java منصة توفر لهم تلقائيا.
- خيط يمكن تجاوز المرجع ولكن هذا لا يحذف المحتوى; أي إذا
سلسلة h1 = "مرحبا"؛
h1 = "مرحبا"+"العالم";
ثم لا يتم حذف سلسلة "hello". انها فقط تفقد مقبضها.
- مراجع متعددة يمكن استخدامها لنفس السلسلة ولكنها سوف تفعل ذلك تحدث في نفس المكان; أي إذا
سلسلة h1 = "مرحبا"؛
سلسلة h2 = "مرحبا"؛
سلسلة h3 = "مرحبا"؛
ثم يتم إنشاء تجمع واحد فقط لسلسلة "hello" في الذاكرة مع 3 مراجع-h1,h2,h3
- إذا لم تكن الجامعة المرغوب التقدم اليها غير مذكورة أعلاه ، فاتصل بنا للحصول على الرقم مذكور في "" ثم أنه يصبح سلسلة، لم يعد رقماً. يعني إذا
السلسلة S1 =”الرقم هو: “+ “123”+”456″;
النظام.خارج.println(S1);
ثم سيطبع: الرقم هو: 123456
إذا كانت التهيئة هكذا:
السلسلة S1 = "الرقم هو: "+(123+456);
System.out.println(S1);
فيطبع: الرقم: 579
هذا كل شيء بالنسبة للسلاسل!



