آموزش StringBuilder در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش StringBuilder در برنامه نویسی اندروید می پردازیم در ادامه با ما همراه باشید. stringbuilder یک نوع object از string است که قابل ویرایش است و همانند یک آرایه از اجزا می باشد در ادامه با ما همراه باشید.
چرا باید از StringBuilder استفاده کنیم ؟
به کد زیر نگاه کنید.

String s = "";
for (int i = 0; i < 100; i++) {
    s += ", " + i;
}

در بالا از یک حلقه for برای قرار دادن عدد 0 تا 99 استفاده کرده ایم این کار در صورتی که بزرگ باشد سبب Memory Leak می شود (قبلا Memory Leak را توضیح داده ایم در سایت جستجو کنید)
برای اینکه از این کار جلوگیری کنیم باید از StringBuilder استفاده کنیم.
دلیل دوم که از StringBuilder استفاده می شود سرعت فوق العاده بالای آن در انجام کار هاست به طور مثال شما اگر بخواهید یک حقله داشته باشید که بخواهد یک میلیون بار اجرا شود اولین اینکه به خطا می خورید و در صورتی که به خطا نخوردید این عملیات شاید ساعت ها طول بکشد اما اگر این کار را با StringBuilder انجام دهید شاید در کسری از دقیقه به اتمام برسد البته به گوشی و پردازنده آن هم بستگی دارد.
و یک چیز جالب هم بگویم در صورتی که از کد زیر استفاده کنید.

String s = "1, " + "2, " + "3, " + "4, " ...;

یعنی خودتان هر segment را تعریف کنید compiler جاوا از StringBuilder استفاده خواهد کرد.
برای ایجاد یک String Builder باید همانند زیر عمل کنید.

        StringBuilder sb = new StringBuilder();

در بالا یک Stringbuilder ساخته شده که 16 خانه ظرفیت دارد اگر در مقدار Stringbuilder چیزی قرار ندهیم به صورت پیشفرض برابر با 16 خواهد بود برای اینکه مقدار آن را تغییر دهیم باید مثل زیر عمل کنیم.

        StringBuilder sb = new StringBuilder(25);

در بالا ما یک StringBuilder داریم که 25 خانه ظرفیت دارد.
برای اضافه کردن مقدار در StringBuilder از append استفاده می شود همانند زیر

sb.append("orjinakteb.com");

انجام عملیات درج در StringBuilder

sb.insert(0,"wow");
sb.insert(1,"");

در بالا درج اولی یعنی این که در index که برابر با 0 باشه مقدار wow را قرار بده بهترین کارت انجام تست است تا بهتر متوجه شوید.
به دست آودن طول StringBuilder

StringBuilder sbnew = new StringBuilder();
sbnew.append("123456")
String len=sbnew.lenght();

در بالا طول کارکتر هایی که در StringBuilder هست در متغیر ذخیره می شود.
به دست آوردن ظرفیت StringBuilder

 StringBuilder sbnew = new StringBuilder(15);
 String capacity = sbnew.capacity();

مقدار ظرفیت یعنی مقدار خانه هایی که در StringBuilder تعریف شده که در بالا برابر با 15 است.
در پایین تر به یک مثال کاربردی تر می پردازیم.
در پایین یک مسری به filename بدهید در پایین می خواهیم یک فایل txt  را از مسیری بخونیم و با استفاده از کد زیر تغییراتی در آن ایجاد کنیم بعد از خواندن هر خط در خط بعدی یک @ اضافه می شود و به خاطر اینکه از خطای memory Leak جلوگیری کنیم باید از try و catch استفاده کنیم قبلا به صورت مفصل توضیح داده بودیم می توانید در سایت جستجو کنید. پس در پایین از BufferREeader برای خواندن فایل استفاده کردیم

        String filename = "";
         try {
              BufferedReader br = new BufferedReader(new FileReader(filename));
	        StringBuilder sbFile = new StringBuilder();
	        String line = br.readLine();
	        while (line != null) {
	        	sbFile.append(line);
	        	sbFile.append('@');
	                line = br.readLine();
	        }
	        String readFile = sbFile.toString();
	        br.close();
	        System.out.println("from file: "+readFile);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}

 
 
این آموزش هم به پایان رسید.
 
موفق و موید باشید.
 
 
 

مطالعه بیشتر