Format String trong java

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

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. 😀

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments