Learn Java Tutorial for Beginners (Video), Part 20: StringBuilder and String Formatting

How to use StringBuilder, StringBuffer and why you should use them. This video also unveils the mystery of formatting strings with printf() and related methods; vital skills for any Java course or aspiring software developer.

When the video is running, click the maximize button in the lower-right-hand corner to make it full screen.

Code for this tutorial:


public class App {

    public static void main(String[] args) {
        // Inefficient
        String info = "";
        info += "My name is Bob.";
        info += " ";
        info += "I am a builder.";
        // More efficient.
        StringBuilder sb = new StringBuilder("");
        sb.append("My name is Sue.");
        sb.append(" ");
        sb.append("I am a lion tamer.");
        // The same as above, but nicer ....
        StringBuilder s = new StringBuilder();
        s.append("My name is Roger.")
        .append(" ")
        .append("I am a skydiver.");
        ///// Formatting //////////////////////////////////
        // Outputting newlines and tabs
        System.out.print("Here is some text.tThat was a tab.nThat was a newline.");
        System.out.println(" More text.");
        // Formatting integers
        // %-10d means: output an integer in a space ten characters wide,
        // padding with space and left-aligning (%10d would right-align)
        System.out.printf("Total cost %-10d; quantity is %dn", 5, 120);
        // Demo-ing integer and string formatting control sequences
        for(int i=0; i<20; i++) {
            System.out.printf("%-2d: %sn", i, "here is some text");
        // Formatting floating point value
        // Two decimal place:
        System.out.printf("Total value: %.2fn", 5.6874);
        // One decimal place, left-aligned in 6-character field:
        System.out.printf("Total value: %-6.1fn", 343.23423);
        // You can also use the String.format() method if you want to retrieve
        // a formatted string.
        String formatted = String.format("This is a floating-point value: %.3f", 5.12345);
        // Use double %% for outputting a % sign.
        System.out.printf("Giving it %d%% is physically impossible.", 100);


My name is Bob. I am a builder.
My name is Sue. I am a lion tamer.
My name is Roger. I am a skydiver.
Here is some text.  That was a tab.
That was a newline. More text.
Total cost 5         ; quantity is 120
0 : here is some text
1 : here is some text
2 : here is some text
3 : here is some text
4 : here is some text
5 : here is some text
6 : here is some text
7 : here is some text
8 : here is some text
9 : here is some text
10: here is some text
11: here is some text
12: here is some text
13: here is some text
14: here is some text
15: here is some text
16: here is some text
17: here is some text
18: here is some text
19: here is some text
Total value: 5.69
Total value: 343.2 
This is a floating-point value: 5.123
Giving it 100% is physically impossible.