Trong Java cung cấp 2 phương thức định dạng in cho chúng ta là printfformat và 2 phương thức này có chức năng tương tự nhau.
Với cùng 1 biến số ta có thể định dạng in nó với nhiều cách khác nhau. VD

System.out.format("The value of " + "the float variable is " +
     "%f, while the value of the " + "integer variable is %d, " +
     "and the string is %s", floatVar, intVar, stringVar); 
int i = 461012;
System.out.format("The value of i is: %d%n", i);

Một điều nữa là ta có thể in theo hệ thống định dạng Pháp, ngăn cách phần nguyên và phần thập phân của số thực thập phân bằng định dạng Locale.FRANCE. VD:

System.out.format(Locale.FRANCE,
    "The value of the float " + "variable is %f, while the " +
    "value of the integer variable " + "is %d, and the string is %s%n", 
    floatVar, intVar, stringVar); 

Ta có một bảng các định dạng:
Định dạng số trong Java

Và các bạn có thể chạy một chương trình đơn giản:

import java.util.Calendar;
import java.util.Locale;

public class FormattingNumericPrintOutput {
    
    public static void main(String[] args) {
      long n = 461012;
      System.out.format("%d%n", n);      //  -->  "461012"
      System.out.format("%08d%n", n);    //  -->  "00461012"
      System.out.format("%+8d%n", n);    //  -->  " +461012"
      System.out.format("%,8d%n", n);    // -->  " 461,012"
      System.out.format("%+,8d%n%n", n); //  -->  "+461,012"
      
      double pi = Math.PI;

      System.out.format("%f%n", pi);       // -->  "3.141593"
      System.out.format("%.3f%n", pi);     // -->  "3.142"
      System.out.format("%10.3f%n", pi);   // -->  "     3.142"
      System.out.format("%-10.3f%n", pi);  // -->  "3.142"
      System.out.format(Locale.FRANCE, "%-10.4f%n%n", pi); // -->  "3,1416" //in theo hệ thống Pháp

      Calendar c = Calendar.getInstance(); //lấy thời gian hiện hành
      
      System.out.format("%tB %te, %tY%n ", c, c, c); // -->  "July 20, 2013"
      System.out.format("%tl:%tM %tp%n", c, c, c);  // -->  " 2:51 pm"
      System.out.format("%tD%n", c);    // -->  "07/20/13"
    }
}
Advertisements