الوقت/التاريخ الآن هو الجمعة أغسطس 07, 2020 1:47 am

2 نتيجة بحث عن reference

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

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

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

و لكى تستطيع التعامل مع السلاسل النصية يجب عليك أن تفهم جيدا الفئة 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

لا تقوم هذة بانشاء كائن فى حد ذاته وانما تقوم بانشاء مرجع للكائن #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"));
   }
}



و لنا بقية مع تكلمة المقال
من طرف أحمد مناع
في الأربعاء أبريل 17, 2019 12:05 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java] التعامل مع الفئة Strings Class
المساهمات: 1
مشاهدة: 238

[Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java

اهلا بكم

كوننا مطورين جافا ، فإننا عادةً ما نتعامل بكثرة مع الكائنات #objects ، لكننا دائمًا ما نستخدم طريقة واحدة لإنشاء هذه الكائنات. ومع ذلك ، هناك المزيد من الطرق لإنشاء الكائنات فى الجافا ، والتي سنحاول دراستها في هذه المقالة.

1_ الطريقة الاولى إستخدام الكلمة new

إنها الطريقة الأكثر شيوعًا فى إنشاء الكائنات وذلك لانها تعتبر اسهل طريقة على الاطلاق لذلك فإن 98% من مطوري الجافا يستخدون هذا الطريقة . حيث من خلال استخدام هذه الطريقة ، يمكننا استدعاء أي دوال الفئة المنشء منها هذا الكائن حتى منشىء تلك الفئة #constructor ...ويتم استخدامها على النحو التالى :
الكود:
MyObject object = new MyObject();


ايضا يمكنك تمرير معلمات الى منشىء الفئة على النحو التالى :

الكود:
MyObject object = new MyObject(2,4);



2_الطريقة الثانية باستخدام الدالة Class.forName

إذا كنا نعرف اسم الفئة أو الكلاس التى نريد إنشاء كائن منها وما إذا كان لديها مُنشئ افتراضي عام ، فيمكننا إنشاء كائن جديد باستخدام الاسلوب #newInstance التابع للطريقة #Class.forName ...فمثلا اذا كانت الفئة #MyObject تنتمى الى الحزمة #test فاننا يمكننا انشاء كائن جديد منها على النحو التالى :

الكود:
MyObject object = (MyObject) Class.forName("test.MyObject").newInstance();


لكن تلك الطريقة فى إنشاء الكائنات ترمى الاستثنائات التالية :

ClassNotFoundException و InstantiationException , IllegalAccessException

لذلك يجب معالجتها على النحو التالى :

الكود:
try {
            MyObject object = (MyObject) Class.forName("test.MyObject").newInstance();
            
                        
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }



3_الطريقة الثالثة باستخدام الدالة clone()

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

الكود:
MyObject anotherObject = new MyObject();
MyObject object = anotherObject.clone();


باستخدام أسلوب النسخ أعلاه لا يمكن استدعاء أي مُنشئ للفئة

4_ الطريقة الرابعة باستخدام مرجع الكائن object reference

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

الكود:
MyObject object ;



5_باستخدام إلغاء التسلسل deserialization

الكود:
ObjectInputStream inStream = new ObjectInputStream(new FileInputStream("data.obj"));
       MyObject object = (MyObject) inStream.readObject();
من طرف أحمد مناع
في السبت فبراير 16, 2019 6:01 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java] الطرق المختلفة لانشاء الكائنات فى الجافا create objects in Java
المساهمات: 0
مشاهدة: 277

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

انتقل الى: