Use d for int instead of i and ffor double instead of d in the following line
str = String.format("%s-30%i-6$%d-20", name, age, donation);
You can read about formatting syntax here http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html.