CMSI 185
Homework #3
Partial Answers
  1. The capitalizer, using a static method that returns a capitalized string.
    import java.util.Scanner;
    
    /**
     * A class containing a utility method to capitalize a string, as well
     * as a main method which prints the capitalized version of a user's
     * input to standard output.
     */
    public class StringCapitalizer {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Enter a line of text:");
            String line = scanner.nextLine();
            System.out.println(capitalizationOf(line));
        }
    
        /**
         * Returns the capitalized variant of its parameter.
         */
        public static String capitalizationOf(String s) {
            StringBuilder builder = new StringBuilder();
            char previous = '.';
            for (int i = 0, n = s.length(); i < n; i++) {
                char current = s.charAt(i);
                if (Character.isLetter(current) && !Character.isLetter(previous)) {
                    builder.append(Character.toUpperCase(current));
                } else {
                    builder.append(current);
                }
                previous = current;
            }
            return builder.toString();
        }
    }