در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer

با سلام به همه دوستان وهمرارهان Itpro. در این مطلب قصد داریم که دو کلاس از جاوا را معرفی کنیم که در نوع خود کلاس های مهمی هستند. این کلاس ها برای کار با رشته ها به کار می روند. البته می توان بدون استفاده از این کلاس ها نیز کار خود را پیش برد ولی اهمیت این کلاس ها وقتی مشخص می شود که در حد زیاد و پردازش های بزرگ بخواهید با رشته ها کار کنید می بینید که استفاده کردن از این کلاس ها تا چه حد performance و سرعت اجرای برنامه را بالا می برد و استفاده از منابعی مانند حافظه و cpu را کم می کند. این کلاس ها StringBuffer و StringBuilder می باشند. این کلاس ها زمانی استفاده می شوند که لازم است که روی رشته های اعمال بسیار زیادی انجام شود. کلاس String به گونه ای است که وقتی از آن استفاده می کنید ممکن است اشیا بسیار زیادی ساخته شود که بسیاری از آن ها بی استفاده و غیر مفید است. ولی اشیائی که از این دو کلاس ساخته می شود این گونه نیست و به همین دلیل استفاده از آن می تواند performance را افزایش دهد. مثلا در کد زیر سه شئ String ساخته می شود. که دو عدد از آن ها بی استفاده هستند.

String str="hi";
Str=str+" Itpro"+" website";

کلاس StringBuilder با جاوای 5 معرفی شد. تفاوت بین StringBuffer و StringBuilder در این است که متدهای موجود در کلاس StringBuilder ویژگی tread Safe بودن را ندارند به عبارت دیگر متدهای این کلاس باهم سنکرون نیستند. اما باید گفت که کلاس StringBuilder سرعت بیشتری دارد. پس تا حد امکان از این کلاس استفاده کنید. اما اگر سنکرون بودن و tread safe بودن برایتان اهمیت دارد از کلاس StringBuffer استفاده کنید. روش استفاده از این کلاس ها برای الحاق رشته ها با هم یا concat کردن رشته ها به شکل کد زیر است:

public class Test{

    public static void main(String args[]){
       StringBuffer sBuffer = new StringBuffer(" test");
       sBuffer.append(" String Buffer");
       System.out.println(sBuffer);  
   }
}

خروجی کد بالا به شکل زیر خواهد بود

test String Buffer

متدهای کلاس StringBuffer عبارتند از:

StringBuffer append(String s)

این متد برای افزودن یک رشته به انتهای رشته موجود در شی ساخته شده از کلاس StringBuffer به کار برده می شود. این متد می تواند همه ی انواع داده اصلی و Stringو هر شئی از هر نوعی را به عنوان ورودی دریافت کند. این متد حتی می تواند یک شئ از کلاس Stringbuffer را نیز به عنوان ورودی بگیرد. شکل های مختلف این متد در کد زیر آورده شده است:

public StringBuffer append(boolean b)
public StringBuffer append(char c) 
public StringBuffer append(char[] str) 
public StringBuffer append(char[] str, int offset, int len) 
public StringBuffer append(double d) 
public StringBuffer append(float f)
public StringBuffer append(int i) 
public StringBuffer append(long l) 
public StringBuffer append(Object obj) 
public StringBuffer append(StringBuffer sb) 
public StringBuffer append(String str)

کد زیر مثالی از این متد را نشان می دهد.

public class Test {

   public static void main(String args[]) {
      StringBuffer sb = new StringBuffer("Test");
      sb.append(" String Buffer");
      System.out.println(sb); 
   }  
}

خروجی کد بالا به شکل زیر است:

Test String Buffer

متد public StringBuffer reverse()

این متد رشته ای را که در داخل شی StringBuffer وجود دارد را برعکس می کند. برعکس کردن رشته به این صورت است که کاراکتر انتهایی رشته در اول می آید و کاراکتر یکی قبل از انتهایی به عنوان کاراکتر دوم ظاهر می شود و به همین ترتیب تا کاراکتر اولی رشته قبلی به عنوان کاراکتر آخر رشته جدید نشان داده می شود. کد زیر نحوه یک مثال از این متد را نشان می دهد.

public class Test {

    public static void main(String args[]) {
       StringBuffer buffer = new StringBuffer("Game Plan");
       buffer.reverse();
       System.out.println(buffer);
   }  
}

خروجی کد بالا به شکل زیر خواهد بود:

nalP emaG

StringBuffer delete(int start, int end)

این متد قسمتی از رشته ای که در شئی که کلاس StringBuffer قرار دارد را حذف می کند. این متد یک اندیس شروع و یک اندیس پایان از کاربر می گیرد و کاراکتر های بین اندیس شروع تا پایان را حذف می کند. البته این نکته را بدانید که کاراکتر با شماره اندیس پایان را حذف نمی کند. یک مثالی از این متد در کد زیر آورده شده است.

public class Test {

   public static void main(String args[]) {
      StringBuffer sb = new StringBuffer("abcdefghijk");
      sb.delete(3,7); 
      System.out.println(sb); 
   }  
}

خروجی این کد به شکل زیر خواهد بود:

abchijk

متد insert

این متد یک مقداری را در داخل متن StringBuffer درج می کند. شکل این متد به این گونه است که دو عدد آرگومان ورودی از کاربر دریافت می کند. اولی اندیسی است که مقداری باید در آن درج شود و آرگومان ورودی دوم همان مقداری است که باید درج شود. این متد دارای شکل های متفاوتی است که در کد زیر آورده شده است.

public StringBuffer insert(int offset, boolean b)
public StringBuffer insert(int offset, char c)
public insert(int offset, char[] str)
public StringBuffer insert(int index, char[] str, 
                           int offset, int len)
public StringBuffer insert(int offset, float f)  
public StringBuffer insert(int offset, int i)
public StringBuffer insert(int offset, long l) 
public StringBuffer insert(int offset, Object obj) 
public StringBuffer insert(int offset, String str)

این به این معنی است که در آرگومان دوم می توان هر نوع داده یا شیئی استفاده کرد. برای مثال در کد زیر ما یک رشته در قسمت مورد نظر اضافه کرده ایم:

public class Test {

   public static void main(String args[]) {
      StringBuffer sb = new StringBuffer("abcdefghijk");
      sb.insert(3,"123");
      System.out.println(sb); 
   }  
}

خروجی کد بالا به شکل زیر خواهد بود

abc123defghijk

اگر برای اندیس مقدار -1 قرار داده شود مقدار در آخر رشته ثبت می شود

متد replace

این متد قسمتی از متن موجود در شئ StringBuffer را با متن داده شده جایگزین می کند. این متد سه آرگومان ورودی دارد که ابتدا و انتهای رشته انتخابی و رشته جایگزین شونده را مشخص می کند. در کد زیر یک مثال از این متد آورده شده است.

public class Test {

   public static void main(String args[]) {
      StringBuffer sb = new StringBuffer("abcdefghijk");
      sb.replace(3, 8, "ZARA");
      System.out.println(sb); 
   }  
}

خروجی این کد متن زیر خواهد بود

abcZARAijk

تا به این بخش متدهایی که مخصوص کلاس های StringBuffer و StringBuilder بود گفته شد. متد های گفته شده در هردو کلاس وجود دارند. یک سری متدهایی هم وجود دارند که همانند متد های موجود در کلاس String هستند که به علت این که کاربرد آنها دقیقا همان کاربرد متدهای موجود در کلاس String است و آنها را شرح داده ایم از توضیح آنها خودداری می کنیم. به یاد داشته باشید که می توان بدون استفاده از این کلاس ها کارهای گفته شده را انجام داد ولی استفاده از این کلاس ها باعث می شود سرعت اجرای برنامه شما در پردازش رشته ها به طرز چشمگیری بالا برود. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #کار_با_رشته_ها_در_جاوا #متدهای_مربوط_به_رشته_ها_در_جاوا #stringbuilder_در_جاوا #آموزش_جاوا #stringbuffer_در_جاوا #بالابردن_سرعت_پردازش_رشته_در_جاوا #پردازش_رشته_سریع_در_جاوا #دوره_آموزشی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....