الفئة StringBuffer لجافا

الفئة StringBuffer هي فئة قابلة للتغيير على عكس الفئة String الغير قابلة للتغيير لكلا من القدرات وسلسلة الأحرف للفئة StringBuffer. يمكن تغيير StringBuffer بطريقة حيوية. وتُفضل سلسلة المخازن "String buffers" عندما يتعلق الأمر بتعديلات ثقيلة لسلاسل الأحرف (إلحاق، وإدراج، وحذف وتعديل وغيرها).
ويمكن الحصول على سلاسل "Strings" من مخازن السلسلة "string buffers" . بما ان الفئة StringBuffer لم تتجاوز المنهج equals() من الفئة كائن "Object class" ، ينبغي تحويل محتويات مخازن السلسلة "string buffers" الى الكائنات سلسلة "String objects" للقيام بمقارنة السلسلة.
يتم طرح StringIndexOutOfBoundsException إذا كان المؤشر غير صالح عند استخدام مؤشر خطأ في التلاعب بمخازن السلسلة "string buffers"

إنشاء StringBuffers

المشيد StringBuffer

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class StringBufferDemo {

public static void main(String[] args) {



// Examples of Creation of Strings

StringBuffer strBuf1 = new StringBuffer("Bob");

StringBuffer strBuf2 = new StringBuffer(100); //With capacity 100

StringBuffer strBuf3 = new StringBuffer(); //Default Capacity 16



System.out.println("strBuf1 : "+strBuf1);

System.out.println("strBuf2 capacity : "+strBuf2.capacity());

System.out.println("strBuf3 capacity : "+strBuf3.capacity());

}

}



Output
strBuf1 : Bob
strBuf2 capacity : 100
strBuf3 capacity : 16

وظائف StringBuffer

البرنامج التالي يوضح استخدام بعض من مناهج StringBuffer الأساسية مثل :


1. capacity()

إرجاع القدرة الحالية لمخزن السلسلة "string buffer"


2. length()

إرجاع طول (عدد الأحرف) مخزن السلسلة .


3. charAt(int index)

يتم إرجاع الحرف المحدد للتسلسل المتمثل حاليا في مخزن السلسلة "string buffer"، كما يتضح من الوسيطة "argument" لــ "index".

4. setCharAt(int index, char ch)

يتم تعيين الحرف الموجود في index لمخزن السلسلة "string buffer" الى ch


6. insert(int offset, char c)

يقوم بإدراج تمثيل سلسلة للوسيطة char في المخزن المؤقت للسلسلة "string buffer".
علما أن الفئة StringBuffer قد حصلت على أكثر من طاقتها من مناهج "insert" الذين يمكن استخدامهم بناءً على حاجة التطبيق.

7. delete(int start, int end)

يزيل أحرف في السلسلة الفرعية من هذا الفئة StringBuffer

8. replace(int start, int end, String str)

يستبدل أحرف في السلسلة الفرعية من هذا الفئة StringBuffer بأحرف في سلسلة المحدد.

9. reverse()

يتم استبدال تسلسل الأحرف الواردة في المخزن المؤقت للسلسلة "string buffer" بعكس التسلسل الاحرف.


10. append(String str)

تقوم بإلحاق السلسلة بالمخزن المؤقت للسلسلة.
علما أن الفئة StringBuffer قد حصلت على أكثر من طاقتها من مناهج "append" الذين يمكن استخدامهم بناءً على حاجة التطبيق.


11. setLength(int newLength)

يعين طول المخزن المؤقت للسلسلة.


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
public class StringBufferFunctionsDemo {

public static void main(String[] args) {



// Examples of Creation of Strings

StringBuffer strBuf1 = new StringBuffer("Bobby");

StringBuffer strBuf2 = new StringBuffer(100); //With capacity 100

StringBuffer strBuf3 = new StringBuffer(); //Default Capacity 16



System.out.println("strBuf1 : "+strBuf1);

System.out.println("strBuf1 capacity : "+strBuf1.capacity());

System.out.println("strBuf2 capacity : "+strBuf2.capacity());

System.out.println("strBuf3 capacity : "+strBuf3.capacity());



System.out.println("strBuf1 length : "+strBuf1.length());

System.out.println("strBuf1 charAt 2 : "+strBuf1.charAt(2));

// A StringIndexOutOfBoundsException is thrown if the index is not valid.

strBuf1.setCharAt(1, 't');



System.out.println("strBuf1 after setCharAt 1 to t is : "+strBuf1);

System.out.println("strBuf1 toString() is : "+strBuf1.toString());

strBuf3.append("beginner-java-tutorial");

System.out.println("strBuf3 when appended with a String : "+strBuf3.toString());

strBuf3.insert(1, 'c');

System.out.println("strBuf3 when c is inserted at 1 : "+strBuf3.toString());

strBuf3.delete(1, 'c');

System.out.println("strBuf3 when c is deleted at 1 : "+strBuf3.toString());

strBuf3.reverse();

System.out.println("Reversed strBuf3 : "+strBuf3);

strBuf2.setLength(5);

strBuf2.append("jdbc-tutorial");

System.out.println("strBuf2 : "+strBuf2);



// We can clear a StringBuffer using the following line

strBuf2.setLength(0);

System.out.println("strBuf2 when cleared using setLength(0): "+strBuf2);



}

}



Output
strBuf1 : Bobby
strBuf1 capacity : 21
strBuf2 capacity : 100
strBuf3 capacity : 16
strBuf1 length : 5
strBuf1 charAt 2 : b
strBuf1 after setCharAt 1 to t is : Btbby
strBuf1 toString() is : Btbby
strBuf3 when appended with a String : beginner-java-tutorial
strBuf3 when c is inserted at 1 : bceginner-java-tutorial
strBuf3 when c is deleted at 1 : b
Reversed strBuf3 : b
strBuf2 :