Java String Format
Bài đăng này đã không được cập nhật trong 7 năm
Trong java việc xử lý format liên quan đến String bạn thường đọc trong Formatter. Tôi đã đọc và viết một bài hướng dẫn rõ ràng và dễ dàng sử dụng các format trong Java
String Formatting
Một trong những cách thông thường để format string là sử dụng hàm String.format()
String output = String.format("%s = %d", "joe", 35);
Nếu sử dụng format cho system output, bạn có thể sử dụng các hàm printf() hoặc format() của System.out và System.err
System.out.printf("My name is: %s%n", "ngoc");
Nếu sử dụng trong việc tạo một Formating liên kết StringBuilder, để tạo format bạn sử dụng hàm format(), sẽ tự động appended vào StringBuffer
StringBuilder sbuf = new StringBuilder();
Formatter fmt = new Formatter(sbuf);
fmt.format("PI = %f%n", Math.PI);
System.out.print(sbuf.toString());
// you can continue to append data to sbuf here.
Format Specifiers
Đây là tham khảo refer nhanh đến tất cả chuyển đổi chi tiết được hỗ trợ
SPECIFIER | APPLIES TO | OUTPUT |
---|---|---|
%a | floating point (except BigDecimal) | Hex output of floating point number |
%b | Any type | “true” if non-null, “false” if null |
%c | character | Unicode character |
%d | integer (incl. byte, short, int, long, bigint) | Decimal Integer |
%e | floating point | decimal number in scientific notation |
%f | floating point | decimal number |
%g | floating point | decimal number, possibly in scientific notation depending on the precision and value. |
%h | any type | Hex String of value from hashCode() method. |
%n | none | Platform-specific line separator. |
%o | integer (incl. byte, short, int, long, bigint) | Octal number |
%s | any type | String value |
%t | Date/Time (incl. long, Calendar, Date and TemporalAccessor) | %t is the prefix for Date/Time conversions. More formatting flags are needed after this. See Date/Time conversion below. |
%x | integer (incl. byte, short, int, long, bigint) | Hex string. |
Date and Time Formatting
Lưu ý: Sử dụng các ký tự định dạng bằng "%T" thay vì "%t" trong bảng dưới đây để tạo chữ hoa đầu ra
FLAG | NOTES |
---|---|
%tA | Full name of the day of the week, e.g. “Sunday“, “Monday“ |
%ta | Abbreviated name of the week day e.g. “Sun“, “Mon“, etc. |
%tB | Full name of the month e.g. “January“, “February“, etc. |
%tb | Abbreviated month name e.g. “Jan“, “Feb“, etc. |
%tC | Century part of year formatted with two digits e.g. “00” through “99”. |
%tc | Date and time formatted with “%ta %tb %td %tT %tZ %tY” e.g. “Fri Feb 17 07:45:42 PST 2017“ |
%tD | Date formatted as “%tm/%td/%ty“ |
%td | Day of the month formatted with two digits. e.g. “01” to “31“. |
%te | Day of the month formatted without a leading 0 e.g. “1” to “31”. |
%tF | ISO 8601 formatted date with “%tY-%tm-%td“. |
%tH | Hour of the day for the 24-hour clock e.g. “00” to “23“. |
%th | Same as %tb. |
%tI | Hour of the day for the 12-hour clock e.g. “01” – “12“. |
%tj | Day of the year formatted with leading 0s e.g. “001” to “366“. |
%tk | Hour of the day for the 24 hour clock without a leading 0 e.g. “0” to “23“. |
%tl | Hour of the day for the 12-hour click without a leading 0 e.g. “1” to “12“. |
%tM | Minute within the hour formatted a leading 0 e.g. “00” to “59“. |
%tm | Month formatted with a leading 0 e.g. “01” to “12“. |
%tN | Nanosecond formatted with 9 digits and leading 0s e.g. “000000000” to “999999999”. |
%tp | Locale specific “am” or “pm” marker. |
%tQ | Milliseconds since epoch Jan 1 , 1970 00:00:00 UTC. |
%tR | Time formatted as 24-hours e.g. “%tH:%tM“. |
%tr | Time formatted as 12-hours e.g. “%tI:%tM:%tS %Tp“. |
%tS | Seconds within the minute formatted with 2 digits e.g. “00” to “60”. “60” is required to support leap seconds. |
%ts | Seconds since the epoch Jan 1, 1970 00:00:00 UTC. |
%tT | Time formatted as 24-hours e.g. “%tH:%tM:%tS“. |
%tY | Year formatted with 4 digits e.g. “0000” to “9999“. |
%ty | Year formatted with 2 digits e.g. “00” to “99“. |
%tZ | Time zone abbreviation. e.g. “UTC“, “PST“, etc. |
%tz | Time Zone Offset from GMT e.g. “ -0800 “. |
Argument Index
Chỉ định index cho biến số trong điều kiện format
String.format("%2$s", 32, "Hello"); // prints: "Hello"
Nhìn ở trên bạn sẽ thấy việc chỉ định index cho danh sách biến, sẽ bắt đầu bằng "%' và kết thúc bằng ký tự "$"
Formatting an Integer
Sử dụng %d để format cho 1 số kiểu int : byte, short, int, long và Big Integer
Kiểu mặc định
String.format("%d", 93); // prints 93
Kiểu với độ rộng width
String.format("|%20d|", 93); // prints: | 93|
Kiểu độ rộng bên bên phải
String.format("|%-20d|", 93); // prints: |93 |
Thêm zeros
String.format("|%020d|", 93); // prints: |00000000000000000093|
Octal output:
String.format("|%o|"), 93); // prints: 135
Hex output:
String.format("|%x|", 93); // prints: 5d
String and Character Conversion
Hiển thị toàn bộ String
String.format("|%s|", "Hello World"); // prints: "Hello World"
Format hiển thị tối đa số ký tự
String.format("|%.5s|", "Hello World"); // prints: |Hello|
Tổng kết
Trên là hướng dẫn cơ bản về định dạng trong chữ số trong java, rất tiện ích cho việc hiện thị chữ số một cách nhanh chóng, bạn có thể dễ dàng sử dụng chúng trong các bài toán code của mình.
All rights reserved