StringThing.java
/* 
 * This program will do a bit of character string processing. 
 */

package stringthing;

public class StringThing {

    public static void main(String[] args) {
        // POINT A: CREATE A PRINT SOME STRING THAT REPRESENT NAMES
        String singer = "Holiday, Billie";
        String sculptor = "Claudel, Camille";
        String painter = "Picasso, Pablo";
        String dancer = "Zotto, Osvaldo";
        String self = "Kuncheng, Feng";

        System.out.println("\nNames ...");
        System.out.println(singer);
        System.out.println(sculptor);
        System.out.println(painter);
        System.out.println(dancer);
        System.out.println(self);

        // POINT B: COMPUTE AND PRINT THE LENGTHS OF THE STRINGS, WITHOUT LABELS
        int singerLength = singer.length();
        int sculptorLength = sculptor.length();
        int painterLength = painter.length();
        int dancerLength = dancer.length();
        int selfLength = self.length();

        System.out.println("\nName lengths ...");
        System.out.println(singerLength);
        System.out.println(sculptorLength);
        System.out.println(painterLength);
        System.out.println(dancerLength);
        System.out.println(selfLength);

        // POINT C: COMPUTE AND PRINT THE LOCATION OF THE COMMA WITHIN EACH STRING, NO LABELS
        int singerCommaPosition = singer.indexOf(",");
        int sculptorCommaPosition = sculptor.indexOf(",");
        int painterCommaPosition = painter.indexOf(",");
        int dancerCommaPosition = dancer.indexOf(",");
        int selfCommaPosition = self.indexOf(",");

        System.out.println("\nComma postions ...");
        System.out.println(singerCommaPosition);
        System.out.println(sculptorCommaPosition);
        System.out.println(painterCommaPosition);
        System.out.println(dancerCommaPosition);
        System.out.println(selfCommaPosition);

        // POINT D: COMPUTE AND PRINT THE FIVE FIRST NAMES, WITH NO LABELS
        String singerFirst = singer.substring(0, singerCommaPosition);
        String sculptorFirst = sculptor.substring(0, sculptorCommaPosition);
        String painterFirst = painter.substring(0, painterCommaPosition);
        String dancerFirst = dancer.substring(0, dancerCommaPosition);
        String selfFirst = self.substring(0, selfCommaPosition);

        System.out.println("\nFirst names ...");
        System.out.println(singerFirst);
        System.out.println(sculptorFirst);
        System.out.println(painterFirst);
        System.out.println(dancerFirst);
        System.out.println(selfFirst);

        // POINT E: COMPUTE AND PRINT THE FIVE LAST NAMES, WITH NO LABELS
        String singerLast = singer.substring((singerCommaPosition + 2), singerLength);
        String sculptorLast = sculptor.substring((sculptorCommaPosition + 2), sculptorLength);
        String painterLast = painter.substring((painterCommaPosition + 2), painterLength);
        String dancerLast = dancer.substring((dancerCommaPosition + 2), dancerLength);
        String selfLast = self.substring((selfCommaPosition + 2), selfLength);


        System.out.println("\nLast names...");
        System.out.println(singerLast);
        System.out.println(sculptorLast);
        System.out.println(painterLast);
        System.out.println(dancerLast);
        System.out.println(selfLast);

        // POINT F: COMPUTE AND PRINT THE FIRST NAMES, AGAIN
        System.out.println("\nFirst names, once again ...");
        System.out.println(firstName(singer));
        System.out.println(firstName(sculptor));
        System.out.println(firstName(painter));
        System.out.println(firstName(dancer));
        System.out.println(firstName(self));

        // POINT G: COMPUTE AND PRINT THE LAST NAMES, AGAIN
        System.out.println("\nLast names, once again ...");
        System.out.println(lastName(singer));
        System.out.println(lastName(sculptor));
        System.out.println(lastName(painter));
        System.out.println(lastName(dancer));
        System.out.println(lastName(self));

        // POINT H: COMPUTE AND PRINT THE FULL NAMES, NATURAL STYLE
        System.out.println("\nFull names, natural style ...");
        System.out.println(fullName(singer));
        System.out.println(fullName(sculptor));
        System.out.println(fullName(painter));
        System.out.println(fullName(dancer));
        System.out.println(fullName(self));
    }

    private static String firstName(String directoryStyleName) {
        int firstNamePosition = directoryStyleName.indexOf(",");
        String firstName = directoryStyleName.substring(0, firstNamePosition);
        return firstName;
    }

    private static String lastName(String directoryStyleName) {
        int lastNamePosition = directoryStyleName.indexOf(",");
        int lastNameLength = directoryStyleName.length();
        String lastName = directoryStyleName.substring(lastNamePosition + 2, lastNameLength);
        return lastName;
    }

    private static String fullName(String dsn){
        int commaPosition = dsn.indexOf(",");
        int stringLength = dsn.length();
        String firstName = dsn.substring(0, commaPosition);
        String lastName = dsn.substring(commaPosition + 2, stringLength);
        String fullName = firstName + " " + lastName;
        return fullName;
    }
}