الوقت/التاريخ الآن هو الجمعة يوليو 01, 2022 1:33 am

3 نتيجة بحث عن StringBuilder

[Java]الطرق المختلفة لتحويل أنواع المتغيرات Integer to String و العكس

أهلا بكم 

فى هذا المقال سنحاول شرح الطرق المختلفة للتحويل ما بين المتغيرات الرقمية من نوع #Integer الى متغيرات نصية #String

1_التحويل باستخدام تحويل باستخدام Integer.toString 

تحتوي الفئة #Integer على أسلوب #toString الذى يقوم بإرجاع كائن سلسلة من #int ويتم كتابة الشفرة بالصيغة العامة التالية :

الكود:
public static String toString(int i)


حيث يتم تحويل الوسيطة i وإرجاعها كمثيل سلسلة. إذا كان الرقم سالباً ، فسيتم حفظ العلامة.

مثال:

الكود:
class GfG
{
public static void main(String args[])
{
   int a = 1234;
   int b = -1234;
   String str1 = Integer.toString(a);
   String str2 = Integer.toString(b);
   System.out.println("String str1 = " + str1);
   System.out.println("String str2 = " + str2);
}
}


المخرجات :
String str1 = 1234
String str2 = -1234

2_ التحويل باستخدام String.valueOf

تحتوى الفئة #String على الاسلوب #valueOf الذى يقوم بتحويل #int الى #String بكل سهولة على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   int c = 1234;
   String str3 = String.valueOf(c);
   System.out.println("String str3 = " + str3);
}
}


أو يمكنك تمرير الرقم int الى الاسلوب #valueOf كمعلة له على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   String str3 = String.valueOf(1234);
   System.out.println("String str3 = " + str3);
}
}



3_التحويل باستخدام Integer(int).toString

تستخدم هذه الطرق مثيل لفئة #Integer لاستدعاء طريقة #toString الخاصة بها ومن ثم استخدامها فى عملية التحويل على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   int d = 1234;
   Integer obj = new Integer(d);
   String str4 = obj.toString();
   System.out.println("String str4 = " + str4);
}
}


أو على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   int d = 1234;
   String str4 = new Integer(d).toString();
   System.out.println("String str4 = " + str4);
}
}


أو على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   String str4 = new Integer(1234).toString();
   System.out.println("String str4 = " + str4);
}
}



4_تحويل باستخدام DecimalFormat

الفئة java.text.DecimalFormat هي فئة تقوم بتهيئة رقم إلى سلسلة....مثال:

الكود:
import java.text.DecimalFormat;
class GfG
{
public static void main(String args[])
{
   int e = 12345;
   DecimalFormat df = new DecimalFormat("#");
   String str5 = df.format(e);
   System.out.println(str5);
}
}


أو يمكنك استخدامها على النحو التالى :

الكود:
import java.text.DecimalFormat;
class GfG
{
public static void main(String args[])
{
   int e = 12345;
   DecimalFormat df = new DecimalFormat("#,###");
   String Str5 = df.format(e);
   System.out.println(Str5);
}
}


باستخدام هذه الطريقة ، يمكنك تحديد عدد المنازل العشرية وفواصل الفاصلة للقراءة.
المخرجات :
String str5 = 12,345



5_التحويل باستخدام الفئة StringBuffer

يمكنك استخدام الفئة #StringBuffer ايضا فى عملية التحويل و ذلك على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   int f = 1234;
   StringBuffer sb = new StringBuffer();
   sb.append(f);
   String str6 = sb.toString();
   System.out.println("String str6 = " + str6);
}
}


أو على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   String str6 = new StringBuffer().append(1234).toString();
   System.out.println("String str6 = " + str6);
}
}


المخرجات :
String str6 = 1234


6_استخدام الفئة StringBuilder

ايضا يمكنك استخدام الفئة #StringBuilder لتحويل المتغيرات الرقمية الى سلسة نصية على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   int g = 1234;
   StringBuilder sb = new StringBuilder();
   sb.append(g);
   String str7 = sb.toString();
   System.out.println("String str7 = " + str7);
}
}


أو على النحو التالى :

الكود:
class GfG
{
public static void main(String args[])
{
   String str7 = new StringBuilder().append(1234).toString();
   System.out.println("String str7 = " + str7);
}
}


المخرجات :
String str7 = 1234
من طرف زهراء
في الجمعة فبراير 22, 2019 6:28 am
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java]الطرق المختلفة لتحويل أنواع المتغيرات Integer to String و العكس
المساهمات: 0
مشاهدة: 565

[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية

اهلا بكم

على الرغم من التشابة الكبير بين الفئة #StringBuffer و الفئة #StringBuilder فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :

1_الفئة #StringBuffer متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة #StringBuilder غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر  من مسار thread لاستدعاء أساليب الفئة #StringBuilder في وقت واحد.

2_ الفئة #StringBuilder أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة #StringBuffer.


أمثلة للتوضيح :

المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب #append للفئة #StringBuffer و الفئة #StringBuilder ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :

الكود:
public class ConcatTest{  
    public static void main(String[] args){  
        long startTime = System.currentTimeMillis();  
        StringBuffer sb = new StringBuffer("Java");  
        for (int i=0; i<10000; i++){  
            sb.append("Tpoint");  
        }  
        System.out.println("Time taken by StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");  
        startTime = System.currentTimeMillis();  
        StringBuilder sb2 = new StringBuilder("Java");  
        for (int i=0; i<10000; i++){  
            sb2.append("Tpoint");  
        }  
        System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");  
    }  
}  


المخرجات :


Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms

يلاحظ من عملية الاخراج أن الفئة #StringBuilder أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة #StringBuffer أستغرقت حوالى 16 ميلى ثانية لنفس العملية

تحياتى
من طرف زهراء
في الخميس يناير 24, 2019 9:01 am
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
المساهمات: 0
مشاهدة: 1219

[Java] التعامل مع الفئة Java StringBuilder

أهلا بكم 

_الفئة Java StringBuilder


هى إحدى الفئات التى توفرها لغة الجافا منذ الاصدار JDK 1.5 للتعامل مع مع سلسلة نصية قابلة للتغيير و التعديل بطريقة حيوية من (إلحاق، وإدراج، وحذف وتعديل وغيرها) فهى تشبة الى حد كبير الفئة  StringBuffer التى تحدثنا عليها فى مقال سابق وربما يكون الفرق الوحيد بينهما أن الفئة #StringBuilder متزامنة synchronized فى حين أن الفئة #StringBuffer غير متزامنة non-synchronized 

_مشيدات الفئة StringBuilder



اهم ثلاث مشيدات الفئة #StringBuilder التى يمكن استخدامها لانشاء و التعامل مع النصوص من خلال تلك الفئة على النحو التالى :


1_المشيد الاول :
الكود:
StringBuilder()


ينشىء مخزن مؤقت فارغ لسلسلة نصية مع السعة الأولية لـ 16حرف

2_ المشيد الثاني :
الكود:
StringBuilder(String str)


ينشىء مخزن مؤقت لسلسلة نصية بقيمة السلسة المحددة

3_المشيد الثالث :
الكود:
StringBuilder(int length)


ينشىء مخزن فارع مؤقت لسلسلة نصية مع السعة المحددة كطول


طرق و دوال الفئة StringBuilder


تحتوي الفئة #StringBuilder على العديد من الطرق و الدوال التى تساعدنا فى التعامل مع سلاسل البيانات من تعديل و تغير و الحاق و خلافة و ذلك على النحو التالى :

1_الطريقة #append

تقوم تلك الطريقة بإلحاق قيمة نصية الى المخزن الموقت #StringBuilder ....مثال : الحاق كلمة #java الى الكلمة #Hello على النحو التالى :

الكود:
class StringBuilderExample{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder("Hello ");  
sb.append("Java");  
System.out.println(sb);  
}  
}  


المخرجات :

Hello Java


2_ الطريقة  #insert

تقوم تلك الطريقة بادراج قيمة نصية للمخزن الموقت StringBuilder#r مع تحديد موضع الادراج ... المثال التالى يوضح كيفية ادراج الكلمة #Java بعد الحرف الاول للقيمة المخزنة فى #StringBuilder :

الكود:
class StringBuilderExample2{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder("Hello ");  
sb.insert(1,"Java");  
System.out.println(sb);  
}  
}  


المخرجات :
HJavaello


3_الطريقة #replace

تقوم تلك الطريقة باستبدال القيمة النصية بالمخزن #StringBuilder بالقيمة الحالية او المعطاة اليها و يتم ذلك من ذلك تحديد موضع الاستبدال و عدد الاحرف التى سيتم اسبدالها من القيمة #StringBuilder ....المثال التالى يوضح الفكرة :

الكود:
class StringBuilderExample3{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder("Hello");  
sb.replace(1,3,"Java");  
System.out.println(sb);  
}  
}  


المخرجات :يمكنك ملاحظة أن عملية الاستبدال تمت بعد الحرف الاول وتم استبدال عدد 3 احرف من الكلمة الاصلية #Hello بالكلمة Java
HJavalo


4_الطريقة #delete

تقوم تلك الطريقة بحذف القيمة النصية بالمخزن #StringBuilder و يمكن تحديد موضع عملية الحذف وايضا عدد ما يتم حذفة ...المثال التالى يوضح الفكرة :
الكود:
class StringBuilderExample4{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder("Hello");  
sb.delete(1,3);  
System.out.println(sb);  
}  
}  


المخرجات :
Ho

5_ الطريقة #reverse

تقوم تلك الطريقة بعكس السلسة النصية الحالية المخزنة فى #StringBuilder ....مثال يوضح الفكرة

الكود:
class StringBuilderExample5{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder("Hello");  
sb.reverse();  
System.out.println(sb);//prints olleH  
}  
}  


المخرجات :
olleH

6_ الطريقة #capacity

تقوم تلك الطريقة بارجاع سعة المخزن #StringBuilder ...مثال توضيحيى :

الكود:
class StringBuilderExample6{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder();  
System.out.println(sb.capacity());//default 16  
sb.append("Hello");  
System.out.println(sb.capacity());//now 16  
sb.append("java is my favourite language");  
System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2  
}  
}  


المخرجات :

16
16
34

7_ الطريقة #ensureCapacity

تضمن طريقة #ensureCapacity أن السعة المحددة هي الحد الأدنى للسعة الحالية. أما إذا كان أكبر من السعة الحالية ، فإنه يزيد السعة بواسطة (oldcapacity * 2) +2. على سبيل المثال ، إذا كانت سعتك الحالية 16 ، فسوف تكون (16 * 2) + 2 = 34.

الكود:
class StringBuilderExample7{  
public static void main(String args[]){  
StringBuilder sb=new StringBuilder();  
System.out.println(sb.capacity());//default 16  
sb.append("Hello");  
System.out.println(sb.capacity());//now 16  
sb.append("java is my favourite language");  
System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2  
sb.ensureCapacity(10);//now no change  
System.out.println(sb.capacity());//now 34  
sb.ensureCapacity(50);//now (34*2)+2  
System.out.println(sb.capacity());//now 70  
}  
}  


تحياتى لك
من طرف زهراء
في الخميس يناير 24, 2019 8:21 am
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java] التعامل مع الفئة Java StringBuilder
المساهمات: 1
مشاهدة: 541

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

انتقل الى: