Aug 10, 2014

6. StringBuilder

A StringBuilder allows strings to built up.




There are 4 constructors and the one without any arguments sets initial size at 16. As a StringBuilder aquires more characters, the capacity is automatically increased.


  // *** 1. Start (Constructors)
  System.out.println("*** Starting 1... ***");
  StringBuilder sb1 = new StringBuilder();
  StringBuilder sb2 = new StringBuilder(32);
  String s1 = "This";
  StringBuilder sb3 = new StringBuilder(s1);
  StringBuilder sb4 = new StringBuilder("THIS ");
  // *** 1. End



We can find the capacity of a StringBuilder using the capacity() method. The append() method allows for characters to be added to end of the StringBuilder.


  // *** 2. Start (capacity, append)
  System.out.println("*** Starting 2... ***");
  System.out.println("sb1 capacity: " + sb1.capacity());
  System.out.println("sb2 capacity: " + sb2.capacity());
  System.out.println("sb3 capacity: " + sb3.capacity());
  System.out.println("sb4 capacity: " + sb4.capacity());
  sb1.append(" Hello ");
  sb2.append(" Hello ").append(" World ");
  sb3.append(false);
  sb4.append(true).append(sb3);
  System.out.println("sb1 = " + sb1);
  System.out.println("sb2 = " + sb2);
  System.out.println("sb3 = " + sb3);
  System.out.println("sb4 = " + sb4);
  // *** 2. End



insert() method can add a string to StringBuilder at any index. The length() method gives current length of StringBuilder.


  // *** 3. Start (insert,length)
  System.out.println("*** Starting 3... ***");
  sb1.insert(0, "_Starting at 0_");
  sb2.insert(1, "_Starting at 1_");
  sb3.insert(2, "_Starting at 2_");
  sb4.insert(3, "_Starting at 3_");
  System.out.format("sb1 = %s\t(L=%d)\n",sb1,sb1.length());
  System.out.format("sb2 = %s\t(L=%d)\n",sb2,sb2.length());
  System.out.format("sb3 = %s\t(L=%d)\n",sb3,sb3.length());
  System.out.format("sb4 = %s\t(L=%d)\n",sb4,sb4.length());
  // *** 3. End



replace() method can be used to replace a substring with a new substring. Finally, after modifications, we can create a String object from a StringBuilder object.


  // *** 4. Start (replace,toString)
  System.out.println("*** Starting 4... ***");
  sb1.replace(0, 0, "-java-"); 
  String str1 = sb1.toString(); 
  System.out.format("str1 = %s\t(L=%d)\n",str1,str1.length());
  sb2.replace(0, 6, "-java-");
  String str2 = sb2.toString();
  System.out.format("str2 = %s\t(L=%d)\n",str2,str2.length());
  sb3.replace(0, 2, "-java-"); 
  String str3 = sb3.toString();
  System.out.format("str3 = %s\t(L=%d)\n",str3,str3.length());
  sb4.replace(0, 3, "-java-");
  String str4 = sb4.toString();
  System.out.format("str4 = %s\t(L=%d)\n",str4,str4.length());
  // *** 4. End



package com.javaAndroid.ex6;

public class Ex6 {
 public static void main(String[] args) {
  // *** 1. Start (Constructors)
  System.out.println("*** Starting 1... ***");
  StringBuilder sb1 = new StringBuilder();
  StringBuilder sb2 = new StringBuilder(32);
  String s1 = "This";
  StringBuilder sb3 = new StringBuilder(s1);
  StringBuilder sb4 = new StringBuilder("THIS ");
  // *** 1. End
  // *** 2. Start (capacity, append)
  System.out.println("*** Starting 2... ***");
  System.out.println("sb1 capacity: " + sb1.capacity());
  System.out.println("sb2 capacity: " + sb2.capacity());
  System.out.println("sb3 capacity: " + sb3.capacity());
  System.out.println("sb4 capacity: " + sb4.capacity());
  sb1.append(" Hello ");
  sb2.append(" Hello ").append(" World ");
  sb3.append(false);
  sb4.append(true).append(sb3);
  System.out.println("sb1 = " + sb1);
  System.out.println("sb2 = " + sb2);
  System.out.println("sb3 = " + sb3);
  System.out.println("sb4 = " + sb4);
  // *** 2. End
  // *** 3. Start (insert,length)
  System.out.println("*** Starting 3... ***");
  sb1.insert(0, "_Starting at 0_");
  sb2.insert(1, "_Starting at 1_");
  sb3.insert(2, "_Starting at 2_");
  sb4.insert(3, "_Starting at 3_");
  System.out.format("sb1 = %s\t(L=%d)\n",sb1,sb1.length());
  System.out.format("sb2 = %s\t(L=%d)\n",sb2,sb2.length());
  System.out.format("sb3 = %s\t(L=%d)\n",sb3,sb3.length());
  System.out.format("sb4 = %s\t(L=%d)\n",sb4,sb4.length());
  // *** 3. End
  // *** 4. Start (replace,toString)
  System.out.println("*** Starting 4... ***");
  sb1.replace(0, 0, "-java-"); 
  String str1 = sb1.toString(); 
  System.out.format("str1 = %s\t(L=%d)\n",str1,str1.length());
  sb2.replace(0, 6, "-java-");
  String str2 = sb2.toString();
  System.out.format("str2 = %s\t(L=%d)\n",str2,str2.length());
  sb3.replace(0, 2, "-java-"); 
  String str3 = sb3.toString();
  System.out.format("str3 = %s\t(L=%d)\n",str3,str3.length());
  sb4.replace(0, 3, "-java-");
  String str4 = sb4.toString();
  System.out.format("str4 = %s\t(L=%d)\n",str4,str4.length());
  // *** 4. End
 }
}



No comments:

Post a Comment