/* 
 * RemoveCapitals.java
 * 
 * Computer Science E-22
 */

/**
 * Removing capital (upper case) letters from a string
 */
public class RemoveCapitals {

    /*
     * removeCapitals("HeLLo") calls removeCapitals("eLLo")
     *   removeCapitals("eLLo") calls removeCapitals("LLo")
     *     removeCapitals("LLo") calls removeCapitals("Lo")
     *       removeCapitals("Lo") calls removeCapitals("o")
     *         removeCapitals("o") calls removeCapitals("")
     *           removeCapitals("") returns ""
     *         removeCapitals("o") returns "o" + "" -> "o"
     *       removeCapitals("Lo") returns "o"
     *     removeCapitals("LLo") returns "o"
     *   removeCapitals("eLLo") returns "eo"
     * removeCapitals("HeLLo") returns "eo"
     */
    public static String removeCapitals(String str) {
        if (str.equals("")) {
            return str;
        }

        String rest = removeCapitals(str.substring(1));
        char first = str.charAt(0);

        if (Character.isUpperCase(first)) {
            return rest;
        } else {
            return first + rest;
        }
    }

    public static void main(String[] args) {
        String input = "HeLLo";
        if (args.length > 0) {
            input = args[0];
        }

        System.out.println(removeCapitals(input));
    }
}
