/**
 * HelloName Coding Bat problem.
 * Given a string name, e.g. "Bob", return a 
 * greeting of the form "Hello Bob!".
 *   helloName("Bob") → "Hello Bob!"
 *   helloName("Alice") → "Hello Alice!"
 *   helloName("X") → "Hello X!"
 * @author Alvin Chao
 * @version 1.0
 * Acknowledgements: I have received no 
 * unauthorize help on this assignment.
 */
 
public class HelloName {

    /** 
     * helloName most efficient highest quality solution.
     * @param name string with the person's name
     * @return String greeting string.        
     */

    public static String helloName(String name) {
        return "Hello " + name + "!";
    }

    /** 
     * helloNameLonger a bit less efficient.
     * @param name string with the person's name
     * @return String greeting string.        
     */

    public static String helloNameLonger(String name) {
        String returnString = "Hello " + name + "!";
        return returnString;
    }

    /** 
     * helloNameLonger2 a bit less efficient.
     * @param name string with the person's name
     * @return String greeting string.        
     */

    public static String helloNameLonger2(String name) {
        String returnString = "Hello ";
        returnString += name + "!";
        return returnString;
    }
    
    /** 
     * helloNameLonger3 a bit less efficient.
     * @param name string with the person's name
     * @return String greeting string.        
     */

    public static String helloNameLonger3(String name) {
        String returnString = "Hello ";
        returnString = returnString + name;
        returnString = returnString + "!";
        return returnString;
    }  

    /** 
     * Main.
     * @param args not used.
     */
    
    public static void main(String[] args) {
        String name = "X";
        System.out.println("Best: " + helloName(name));
        System.out.println("   1: " + helloNameLonger(name));
        System.out.println("   2: " + helloNameLonger2(name));    
        System.out.println("   3: " + helloNameLonger3(name));    
    } 
}
