Khi ta muốn build String mà có nhiều chỗ là giá trị của 1 biến, ta thường dùng +
để nối chúng lại với nhau. Ví dụ:
String title = "How to do " + action + " in java";
Chúng ta thấy ví dụ cũng đơn giản, nhưng nếu có thêm vài biến/tham số nữa thì sao? sẽ phải cộng String rất nhiều. Chúng ta hoàn toàn có thể sử dụng method format(String, Object… args)
để build String.
String title = String.format("How to do %s in java", action);
Ở đây, %s
sẽ đại diện cho String. Cái này gọi là conversion type, những conversion type thông dụng là:
%s : strings. ("text") %d : decimal integers. (20) %f : floating-point numbers.(10.45) %b : booleans. (true/false) %c : characters. ('N') %t : date/time values. (22:37:15) %n : line separator. (xuống dòng)
Cấu trúc chung của 1 coversion type sẽ là
%[argument_index$][flags][width][.precision]conversion_type
- argument_index : chỉ vị trí của tham số mà nó đang trỏ đến. Tham số 1 sẽ là
1$
, tham số 2 sẽ là2$
. - width : độ rộng của String
- .precision : độ chính xác của tham số thập phân
Nội dung bài viết
I. Format Number
1. Integer %d
int first = 2; int second = 4; String format = String.format("%1$d plus %1$d = %2$d", first, second); System.out.println(format); //2 + 2 = 4
Hoặc bạn có thể dùng
int first = 2; int second = 4; System.out.printf("%1$d + %1$d = %2$d", first, second); //2 + 2 = 4
2. Float Number %f
double total = 4.456; System.out.printf("number is = %.2f", total); //number is = 4.46
Khi có thêm độ chính xác .2
thì số được tự động làm tròn lên từ 4.456
–> 4.46
II. Format String
System.out.printf("The blog name is : %s %n", "giangtester"); System.out.printf("The blog name is : %S", "giangtester");
Output:
The blog name is : giangtester The blog name is : GIANGTESTER
%n
: để xuống dòng%S
: để viết hoa
Nếu muốn hiển thị số %
thì bạn sẽ phải điền là %%
. Ví dụ
System.out.printf("The interest rate is %d%%", 7); //The interest rate is 7%
III. Tổng kết
Dùng format sẽ rất hiệu quả trong 1 số trường hợp, bạn cứ thử áp dụng mà xem, bạn sẽ thấy code gọn hơn, rõ ràng hơn. Vậy thôi, hết rồi. 😀