[Java] التعامل مع الفئة Strings Class

اذهب الى الأسفل

[Java] التعامل مع الفئة Strings Class Empty [Java] التعامل مع الفئة Strings Class

مُساهمة من طرف أحمد مناع في الأربعاء أبريل 17, 2019 12:05 pm

أهلا بكم اخوانى 

مقال اليوم عن كيفية التعامل مع السلاسل النصية فى لغة الجافا، والتي تعتبر من اهم البيانات التى تستخدم على نطاق واسع في برمجة تطبيقات لغة الجافا

و لكى تستطيع التعامل مع السلاسل النصية يجب عليك أن تفهم جيدا الفئة Strings Class التى توفرها لغة Java  لإنشاء ومعالجة السلاسل.

1_ما هي السلسلة Strings في جافا

بشكل عام ، يتم تمثيل السلاسل النصية فى ذاكرة الحاسوب على هيئة سلسلة من الأحرف ، ولسيت مجرد نصوص أو كلمات و إنما هى فى الاساس أحرف . ولكن في لغة Java  يتم استخدام فئة java.lang.String لإنشاء كائن سلسلة يمثل سلسلة من الأحرف فيتم تحويل الاحرف تلك الى نص

فمثلا  اذا تم انشاء مصفوفة احرف من الحروف h-e-l-l-o ثم استخدام كائن السلسة String ثم طباعة هذا الكائن سيتم طباعة الكلمة hello و ليس احرف على النحو التالى :

الكود:
public class StringDemo {

   public static void main(String args[]) {
      char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
      String helloString = new String(helloArray);  
      System.out.println( helloString );
   }
}

المخرجات :
hello.

2_كيفية إنشاء كائن سلسلة String ؟

هناك طريقتان لإنشاء كائن سلسلة:

الاولى :باستخدام مرجع الكائن object reference

لا تقوم هذة بانشاء كائن فى حد ذاته وانما تقوم بانشاء مرجع للكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] هو عنوان يشير إلى مكان تخزين متغيرات وأساليب هذا الكائن ويتم ذلك على النحو التالى :

الكود:
String s="welcome";


الثانية :بواسطة الكلمة المحجوزة new

الكود:
String s=new String("Welcome");


و اليكم مثال كامل لانشاء كائنات السلسلة بالطرقتين على النحو التالى :

الكود:
public class StringExample{  
public static void main(String args[]){  
String s1="java";//إنشاء مرجع كائن  
char ch[]={'s','t','r','i','n','g','s'};  
String s2=new String(ch);//تحويل مصفوفة احرف الى نص  
String s3=new String("example");//إنشاء كائن سلسلة جديد  
System.out.println(s1);  
System.out.println(s2);  
System.out.println(s3);  
}}  

المخرجات :

java
strings
example

3_أساليب الفئة Strings Class

توفر الفئة java.lang.String العديد من الطرق المفيدة لتنفيذ بعض العمليات على السلاسل النصية و سنحاول شرحها على النحو التالى :

_ الطريقة charAt

تقوم هذه الطريقة بإرجاع الحرف الموجود في فهرس السلسلة المحدد.بمعنى انها تقوم بارجاع رقم الحرف فى السلسلة النصية التى تبدأ من الصفر.ويتم بناء الجملة على النحو التالى :

الكود:
public char charAt(int index)

مثال توضيحي :المثال التالى يوضح كيفية ارجاع قمية الحرف فى السلسة بناء على رقم الفهرس له

الكود:
public class Test {

   public static void main(String args[]) {
      String s = "Strings are immutable";
      char result = s.charAt(8);
      System.out.println(result);
   }
}

المخرجات :
a

_الطريقة length

هذه الطريقة تقوم بإرجاع طول السلسة النصية مثال للتوضيح

الكود:
public class StringDemo {

   public static void main(String args[]) {
      String palindrome = "Dot saw I was Tod";
      int len = palindrome.length();
      System.out.println( "String Length is : " + len );
   }
}

المخرجات :
String Length is : 17

_الطريقة concat

هذه الطريقة تلحق سلسلة نصية واحدة بنهاية سلسلة أخرى مثال للتوضيح

الكود:
public class Test {

   public static void main(String args[]) {
      String s = "ahmed";
      s = s.concat(" all the time");
      System.out.println(s);
   }
}

المخرجات :
ahmed all the time

_الطريقة copyValueOf

تقوم هذه الطريقة بإرجاع سلسلة تمثل تسلسل الأحرف في مصفوفة احرف المحدد.مثال :

الكود:
public class Test {

   public static void main(String args[]) {
      char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
      String Str2 = "";
      Str2 = Str2.copyValueOf( Str1 );
      System.out.println("Returned String: " + Str2);
   }
}

المخرجات :
Returned String: hello world

_الطريقة equals

يقارن هذة الطريقة السلسلة النصية بالكائن المحدد. تكون النتيجة صحيحة ture إذا لم تكن الوسيطة خالية وكانت عبارة عن كائن سلسلة يمثل نفس تسلسل الأحرف في هذا الكائن.مثال :

الكود:
public class Test {

   public static void main(String args[]) {
      String Str1 = new String("This is really not immutable!!");
      String Str2 = Str1;
      String Str3 = new String("This is really not immutable!!");
      boolean retVal;

      retVal = Str1.equals( Str2 );
      System.out.println("Returned Value = " + retVal );

      retVal = Str1.equals( Str3 );
      System.out.println("Returned Value = " + retVal );
   }
}

المخرجات :
Returned Value = true
Returned Value = true

الطريقة :endsWith

تختبر هذه الطريقة إذا كانت هذه السلسلة تنتهي باللاحقة المحددة مثال للتوضيح

الكود:
public class Test {

   public static void main(String args[]) {
      String Str = new String("This is really not immutable!!");
      boolean retVal;

      retVal = Str.endsWith( "immutable!!" );
      System.out.println("Returned Value = " + retVal );

      retVal = Str.endsWith( "immu" );
      System.out.println("Returned Value = " + retVal );
   }
}

المخرجات :

Returned Value = true
Returned Value = false


الطريقة :replace

تُرجع هذه الطريقة سلسلة جديدة تنتج عن استبدال احرف قديمة باحرف جديدة على النحو التالى :

الكود:
import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to egy-tech.forumegypt.ne");

      System.out.print("Return Value :" );
      System.out.println(Str.replace('o', 'T'));

      System.out.print("Return Value :" );
      System.out.println(Str.replace('l', 'D'));
   }
}

المخرجات :
Return Value :WelcTme tT egy-tech.fTrumegypt.
Return Value :WeDcome to egy-tech.forumegypt

الطريقة :replaceAll

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

الكود:
public String replaceAll(String regex, String replacement)

حيث أن :
regex - التعبير المعتاد الذي ستتم مطابقة هذه السلسلة معه.

replacement - السلسلة التي ستحل محل التعبير الموجود.

مثال :
الكود:
import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");

      System.out.print("Return Value :" );
      System.out.println(Str.replaceAll("(.*)Tutorials(.*)", "AMROOD"));
   }
}


و لنا بقية مع تكلمة المقال

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 994
النقاط : 201783
التقيم : 119
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

[Java] التعامل مع الفئة Strings Class Empty رد: [Java] التعامل مع الفئة Strings Class

مُساهمة من طرف abushuber في الخميس أبريل 18, 2019 2:51 am

شكراشكرا استاذ احمد وكل التوفيق لكم يارب
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى