Note that, System.out.printf and System.out.format is exactly the same, the Java engineer come out with System.out.printf may be want to make C Programmer happy.
Now, I am going to use this System.out.printf to format my money, in account book, for example, there are different type of formatting. I now tied up with my code, and the output let you to see what happen in this.
import java.util.*;
import java.text.*;
class MoneyForm {
private double amount;
private int type;
public MoneyForm(double amount, int type) {
this.amount = amount;
this.type = type;
}
public void generateForm() {
switch(type) {
case 0:
System.out.printf(" >$%1$-+,(15.3f< ", amount);
break;
case 1:
System.out.printf(" >$%1$0+,(15.3f< ", amount);
break;
case 2:
System.out.printf(" >$%1$0+(15.3f< ", amount);
break;
case 3:
System.out.printf(" >$%1$+(15.3f< ", amount);
break;
case 4:
System.out.printf(" >$%1$+,(15.3f< ", amount);
break;
}
System.out.println();
}
}
class Money {
public static void main(String args[]) {
for(int i=0; i<5; i++)
printMoney(i);
}
public static void printMoney(int type) {
System.out.println("Money Form of type: " + type);
for(int i=-3; i<=3; i++)
new MoneyForm(i * 1530.21, type).generateForm();
}
}