1. String reverse(String s){ String result = ""; for( int i = s.length()-1; i >= 0; i-- ){ result += s.charAt(i); } return result; } 2. a. Strings are immutable! That means none of the string methods modify the String; they all return a new String object. If you're curious why Java made this decision, here's a decent summary of some of the benefits: http://java.dzone.com/articles/why-string-immutable-java b. String name(String first, String last, boolean firstNameFirst){ if( firstNameFirst ){ return first.toUpperCase() + " " + last.toUpperCase(); }else{ return last.toUpperCase() + ", " + first.toUpperCase(); } }