Phương thức định dạng chuỗi Java()
Ví dụ
Trả về một chuỗi được định dạng:
String myStr = "Hello %s! One kilobyte is %,d bytes."; String result = String.format(myStr, "World", 1024); System.out.println(result);
Định nghĩa và cách sử dụng
Phương thức format()
trả về một chuỗi được định dạng bằng cách sử dụng ngôn ngữ, định dạng và các đối số bổ sung.
Nếu một ngôn ngữ không được truyền cho phương thức này thì ngôn ngữ do Locale.getDefault()
cung cấp sẽ được sử dụng.
Dữ liệu từ các đối số bổ sung được định dạng và ghi vào phần giữ chỗ trong chuỗi định dạng, được đánh dấu bằng ký hiệu %. Cách thức định dạng đối số phụ thuộc vào chuỗi ký tự theo sau ký hiệu %.
Phần giữ chỗ
Phần giữ chỗ có dạng %[arg$][flags][width][.precision]conversion
. Các thành phần trong [dấu ngoặc vuông] là tùy chọn.
Giải thích từng thành phần:
-
arg$
- Tùy chọn. Một số theo sau là dấu $ cho biết đối số bổ sung nào sẽ được sử dụng, số đối số bắt đầu từ 1. Số này có thể được thay thế bằng dấu<
chỉ định rằng đối số từ phần giữ chỗ trước đó sẽ được sử dụng. -
flags
- Tùy chọn. Một chuỗi của bất kỳ ký tự nào sau đây:-
-
- Làm cho đầu ra căn đều sang trái bằng cách thêm bất kỳ khoảng trống đệm nào vào bên phải thay vì bên trái. -
#
- Hiển thị biểu diễn thay thế của dữ liệu được định dạng tùy thuộc vào chuyển đổi. -
+
- Làm cho số dương luôn có tiền tố "+". -
0
- Chèn số có số 0 ở bên trái. -
,
- Nhóm các chữ số (ví dụ theo hàng nghìn) và đặt dấu phân cách giữa các nhóm. Điều này bị ảnh hưởng bởi địa phương. -
(
- Đặt số âm trong ngoặc đơn.
-
-
width
- Tùy chọn. Một số nguyên chỉ định số lượng ký tự tối thiểu mà đầu ra sẽ chiếm. Nếu cần thêm khoảng trắng vào bên phải để đạt được số này hoặc ở bên trái nếu sử dụng cờ-
. -
.precision
Tùy chọn. MỘT.
theo sau là một số nguyên cho biết có bao nhiêu chữ số thập phân hiển thị trong dữ liệu được định dạng. -
conversion
- Bắt buộc. Một ký tự cho biết cách trình bày dữ liệu của đối số. Nếu ký tự là chữ hoa thì dữ liệu sẽ được định dạng bằng chữ hoa nếu có thể. Danh sách các ký tự có thể được hiển thị trong bảng bên dưới.
Danh sách chuyển đổi
Tính cách | Chuyển đổi | Sự miêu tả |
---|---|---|
% | Phần trăm | Hiển thị ký tự "%" bằng chữ ở đầu ra. |
n | Ngắt dòng | Hiển thị ngắt dòng ở đầu ra. |
b hoặc B | Boolean | Hiển thị giá trị boolean của một đối số là "true" hoặc "false". Nếu "B" được sử dụng thì nó sẽ hiển thị "TRUE" hoặc "FALSE". |
h hoặc H | Số nguyên thập lục phân không dấu | Biểu thị dữ liệu nhị phân của đối số dưới dạng số nguyên thập lục phân không dấu. Nếu "H" được sử dụng thì các chữ số từ A đến F sẽ được hiển thị bằng chữ hoa. Lưu ý: Đối với bất kỳ dữ liệu nào không phải là số nguyên dương, giá trị này không thể hiện giá trị thực của nó. |
s hoặc S | Sợi dây | Hiển thị biểu diễn chuỗi mặc định của đối số. Nếu "S" được sử dụng thì chuỗi sẽ được chuyển thành chữ hoa nếu có thể. |
c hoặc C | Ký tự Unicode | Hiển thị biểu diễn ký tự unicode của đối số. Đối với số nguyên, đây là ký tự unicode tương ứng với số đó. Nếu "C" được sử dụng thì ký tự sẽ được chuyển thành chữ hoa nếu có thể. |
d | số nguyên thập phân | Biểu thị một số nguyên dưới dạng số nguyên thập phân. |
o | số nguyên bát phân | Biểu thị một số nguyên dưới dạng số nguyên bát phân. Cờ "#" sẽ có tiền tố là "0". |
x hoặc X | Số nguyên thập lục phân | Biểu thị một số nguyên dưới dạng số nguyên thập lục phân. Cờ "#" sẽ có tiền tố "0x". Nếu sử dụng "X" thì các chữ số từ A đến F và chữ X được hiển thị bằng chữ hoa. |
e hoặc E | Ký hiệu khoa học | Biểu thị một số dấu phẩy động trong ký hiệu khoa học. Nếu "E" được sử dụng thì chữ "E" của cách biểu thị sẽ là chữ hoa. Cờ "#" sẽ buộc phải có dấu thập phân ngay cả khi không có chữ số thập phân. |
f | Số điểm nổi | Đại diện cho một số dấu phẩy động. Cờ "#" sẽ buộc phải có dấu thập phân ngay cả khi không có chữ số thập phân. |
g hoặc G | Số chung | Hiển thị biểu diễn ngắn nhất giữa f và e hoặc E cho số dấu phẩy động. |
a hoặc A | Số dấu phẩy động thập lục phân | Hiển thị biểu diễn bên trong của số dấu phẩy động bằng các chữ số thập lục phân. |
t hoặc T | Thời gian hoặc ngày | Hiển thị ngày hoặc giờ được định dạng. Sau chữ t hoặc T phải có thêm một ký tự nữa cho biết cách định dạng ngày hoặc giờ. Nếu "T" được sử dụng thì các phần văn bản của ngày hoặc giờ chẳng hạn như "THÁNG 1" sẽ là chữ hoa. Các ký tự sau có thể được sử dụng để định dạng ngày và giờ:
|
Cú pháp
Một trong những điều sau đây:
public static String format(Locale locale , String format , Object... args )
public static String format(String format , Object... args )
Giá trị tham số
Parameter | Description |
---|---|
locale | Optional. A locale used to determine some of the formatting, such as which characters are used for decimal points and grouping separators. |
format | Required. A string to be returned which can have placeholders for the additional arguments indicating how to format them. |
args | Optional. Any number of additional arguments to the method, their values can be formatted and displayed in the returned string. |
Chi tiết kỹ thuật
Trả về: | Giá trị String được định dạng bằng ngôn ngữ, định dạng và đối số được chỉ định. |
---|---|
Ném: | IllegalFormatException - nếu chuỗi định dạng chứa phần giữ chỗ không hợp lệ hoặc phần giữ chỗ không tương thích với kiểu dữ liệu của đối số. |
Phiên bản Java: | 1,5 |
Thêm ví dụ
Ví dụ
Một trình giữ chỗ sử dụng tất cả các thành phần:
String result = String.format("%2$,3.2f %1$s", "meters", 1260.5052); System.out.println(result);
Đây là cách hoạt động của từng phần của trình giữ chỗ %2$,3.2f
:
-
2$
chỉ ra rằng giá trị của đối số thứ hai được sử dụng -
,
cho biết các chữ số nên được nhóm lại (thường theo hàng nghìn) -
3
chỉ ra rằng cách trình bày dữ liệu phải dài ít nhất 3 ký tự -
.2
chỉ ra rằng phải có hai chữ số sau dấu thập phân -
f
chỉ ra rằng dữ liệu đang được biểu diễn dưới dạng số dấu phẩy động
Ví dụ
Sử dụng các đối số theo một thứ tự khác:
String result = String.format("%3$c %2$c %1$c", 'a', 'b', 'c'); System.out.println(result);
Ví dụ
Định dạng số dấu phẩy động:
double myNumber = 123456.78; String result; // Default result = String.format("%f", myNumber); System.out.println(result); // Two decimal digits result = String.format("%.2f", myNumber); System.out.println(result); // No decimal digits result = String.format("%.0f", myNumber); System.out.println(result); // No decimal digits but keep the decimal point result = String.format("%#.0f", myNumber); System.out.println(result); // Group digits result = String.format("%,.2f", myNumber); System.out.println(result); // Scientific notation with two digits of precision result = String.format("%.2e", myNumber); System.out.println(result);
Ví dụ
Định dạng ngày từ dấu thời gian Unix:
long date = 1711638903488L; // Unix timestamp (number of milliseconds since January 1, 1970) String result // Time result = String.format("%tl:%<tM %<tp", date); System.out.println(result); // Month and day result = String.format("%tB %<te", date); System.out.println(result); // Full date representation result = String.format("%tc", date); System.out.println(result);
Ví dụ
Biểu thị các ký tự từ các điểm mã unicode của chúng:
String result; // Represent characters from their unicode code points result = String.format("%c%c%c%c%c", 72, 101, 108, 108, 111); System.out.println(result); // Force unicode characters to uppercase result = String.format("%C%C%C%C%C", 72, 101, 108, 108, 111); System.out.println(result);
❮ Các phương thức chuỗi