import java.util.Calendar;
import java.util.Date;
import java.util.Formatter;
import java.util.GregorianCalendar;
public class FormatBasic {
public static void main(String... p) {
Formatter f = new Formatter();
f.format("String");
f.format("String %20% %n");
f.format("%% %s", "str");
f.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d");
f.format("e = %+10.4f", Math.E);
f.format("Amount gained or lost since last statement: $ %(,.2f", -6217.58);
f.format("Local time: %tT", Calendar.getInstance());
f.format("Unable to open file '%1$s': %2$s", "food", "No such file or directory");
f.format(
"Duke's Birthday: %1$tm %1$te,%1$tY",
new GregorianCalendar(1995, Calendar.MAY, 23));
f.format("Duke's Birthday: %tm %<te,%<tY", new Date());
f.format("Duke's Birthday: %2$tm %<te,%<tY (it's the %dth)", 123, new Date());
String s = "%+s%";
//:: error: (format.string.invalid)
f.format(s, "illegal");
//:: error: (format.string.invalid)
f.format("%+s%", "illegal");
//:: error: (format.string.invalid)
f.format("Wrong < indexing: %1$tm %<te,%<$tY", new Date());
//:: error: (format.string.invalid)
f.format("%t", new Date());
//:: error: (argument.type.incompatible)
f.format("%Td", (int) 231);
f.close();
}
}