Định dạng chuỗi trong Java sử dụng String.format()

**Đị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ệuMô TảVí Dụ
%sKiểu chuỗi"hello"
%cKiểu ký tự'a'
%bKiểu booleantrue
%dKiểu số nguyên (thập phân)123
%xKiểu số nguyên (thập lục phân)FF
%oKiểu số nguyên (bát phân)77
%fKiểu số thực99.99
%aKiểu số thực thập lục phân0X1.FFFFFFFECP-4
%eKiểu số mũ9.38e+5
%gKiểu số thực ngắn gọn-略-
%hMã băm-略-
%%Ký hiệu phần trăm%
%nDấu xuống dòng-略-
%tNgà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ọnMô 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ệuMô TảVí Dụ
%tcToàn bộ thông tin ngày giờ-略-
%tFNgày tháng năm (ISO 8601)2023-10-05
%tDNgày tháng năm (Mỹ)10/05/23
%trGiờ phút giây (12 giờ)02:15:30 PM
%tTGiờ phút giây (24 giờ)14:15:30
%tRGiờ 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);
    }
}

Thẻ: Java String.format() Date Formatting

Đăng vào ngày 26 tháng 5 lúc 22:35