**Định dạng các kiểu dữ liệu cơ bản**
Phương thức format() của lớp String trong Java được sử dụng để tạo ra các chuỗi có định dạng và ghép nối nhiều đối tượng chuỗi. Người dùng quen thuộc với ngôn ngữ C sẽ thấy nó tương tự như hàm sprintf(). Phương thức format() có hai dạng tải (overload).
- format(String format, Object... args): Tạo chuỗi mới sử dụng môi trường địa phương (local) theo định dạng chỉ định.
- format(Locale locale, String format, Object... args): Tạo chuỗi mới sử dụng môi trường địa phương được chỉ định.
Các ký hiệu chuyển đổi giúp biến đổi các kiểu dữ liệu khác nhau thành chuỗi, ví dụ:
| Ký Hiệu | Mô Tả | Ví Dụ |
| %s | Kiểu chuỗi | "hello" |
| %c | Kiểu ký tự | 'a' |
| %b | Kiểu boolean | true |
| %d | Kiểu số nguyên (thập phân) | 123 |
| %x | Kiểu số nguyên (thập lục phân) | FF |
| %o | Kiểu số nguyên (bát phân) | 77 |
| %f | Kiểu số thực | 99.99 |
| %a | Kiểu số thực thập lục phân | 0X1.FFFFFFFECP-4 |
| %e | Kiểu số mũ | 9.38e+5 |
| %g | Kiểu số thực ngắn gọn | -略- |
| %h | Mã băm | -略- |
| %% | Ký hiệu phần trăm | % |
| %n | Dấu xuống dòng | -略- |
| %t | Ngày giờ | -略- |
Ví dụ minh họa:
public static void main(String[] args) {
String chuoi = null;
chuoi = String.format("Chào bạn %s", "Nam");
System.out.println(chuoi);
chuoi = String.format("Họ: %s, Tên: %s", "Trần", "Minh");
System.out.println(chuoi);
System.out.printf("Ký tự 'A' là: %c%n", 'A');
System.out.printf("Kiểm tra điều kiện 5 > 3: %b%n", 5 > 3);
System.out.printf("Nửa của 100 là: %d%n", 100 / 2);
System.out.printf("Giá trị thập lục phân của 100 là: %x%n", 100);
System.out.printf("Giá trị bát phân của 100 là: %o%n", 100);
}
**Định dạng với các tùy chọn bổ sung**
Bảng dưới đây liệt kê một số tùy chọn mở rộng cho phép điều chỉnh cách hiển thị:
| Tùy Chọn | Mô Tả | Ví Dụ | Kết Quả |
| + | Hiển thị dấu trước số dương hoặc âm | ("%+d", 5) | +5 |
| - | Căn trái | ("%-5d", 5) | |5 | |
| 0 | Đệm số 0 phía trước | ("%04d", 5) | 0005 |
| | Thêm khoảng trắng trước số | ("% 4d", 5) | | 5| |
| , | Chia nhóm bằng dấu phẩy | ("%,f", 1000000) | 1,000,000.000000 |
| ( | Bao gồm số âm trong dấu ngoặc | ("%(f", -5.5) | (5.500000) |
Một ví dụ khác về việc áp dụng các tùy chọn này:
public static void main(String[] args) {
// Sử dụng dấu +
System.out.printf("Số dương: %+d%n", 5);
System.out.printf("Số âm: %+d%n", -5);
// Đệm số 0
System.out.printf("Số được đệm 0: %06d%n", 123);
// Chia nhóm bằng dấu phẩy
System.out.printf("Số lớn: %,f%n", 12345678.90);
// Số âm trong dấu ngoặc
System.out.printf("Số âm: %(f%n", -5.5);
}
**Định dạng ngày giờ**
Java cung cấp khả năng định dạng ngày giờ thông qua các ký hiệu đặc biệt. Một vài ví dụ phổ biến bao gồm:
| Ký Hiệu | Mô Tả | Ví Dụ |
| %tc | Toàn bộ thông tin ngày giờ | -略- |
| %tF | Ngày tháng năm (ISO 8601) | 2023-10-05 |
| %tD | Ngày tháng năm (Mỹ) | 10/05/23 |
| %tr | Giờ phút giây (12 giờ) | 02:15:30 PM |
| %tT | Giờ phút giây (24 giờ) | 14:15:30 |
| %tR | Giờ phút (24 giờ) | 14:15 |
Ví dụ minh họa:
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date ngayGio = new Date();
System.out.printf("Toàn bộ thông tin ngày giờ: %tc%n", ngayGio);
System.out.printf("Ngày tháng năm ISO: %tF%n", ngayGio);
System.out.printf("Ngày tháng năm Mỹ: %tD%n", ngayGio);
System.out.printf("Giờ phút giây (12 giờ): %tr%n", ngayGio);
System.out.printf("Giờ phút giây (24 giờ): %tT%n", ngayGio);
System.out.printf("Giờ phút (24 giờ): %tR%n", ngayGio);
}
}