Nhập / xuất dữ liệu là nhu cầu bắt buộc của hầu hết mọi ngôn ngữ lập trình nói chung.
Nó là những thao tác cơ bản và là câu lệnh khởi sự cho quá trình nhập môn học lập trình.
Trong Java bấy lâu nay, đa phần chúng ta tiếp xúc và làm việc nhiều với hai câu lệnh xuất cơ bản là print
và println
.
Nhưng trên thực tế, mấy các bạn mới học Java chưa biết nhiều về phương phức printf, trông có vẻ giống người hàng xóm C nhưng tính năng mà Java đem lại với printf là một phương thức rất hữu ích trong thực tế.
1. Printf trong Java có tác dụng gì? Được sử dụng khi nào?
Phương thức printf trong Java
Printf trong Java được xem như là bản nâng cấp của hai người anh em Print và Println.
Trong khi Print và Println chỉ làm một nhiệm vụ duy nhất là in ra màn hình, Printf thì lại khác, vừa in được ra màn hình, vừa định dạng được những thứ mà nó đã in ra – từ chuỗi đến số, ngày giờ và cả đối tượng.
Wow, lợi hại chưa!
Thật hợp lý khi Java bổ sung thêm Printf với những tính năng mới đầy tiện ích như vậy.
Lập trình viên không cần phải loay hoay sử dụng thêm các hàm hay bất cứ thư viện nào khác cũng có thể in ra màn hình theo định dạng mà mình mong muốn, cái mà Print và Println không làm được.
Nói đến đây, chúng ta chỉ cần hiểu ngắn gọn là Printf giúp việc in ra màn hình theo một định dạng đã quy ước nào đó tiện lợi hơn.
Nó giúp việc code và xử lý trở nên đơn giản và linh hoạt hơn.
2. So sánh printf với println, print
Vậy, trong Java có tới 3 cách in ra màn hình thì nên chọn cái nào trong trường hợp nào cho phù hợp.
Để làm rõ điều này, chúng ta cùng điểm qua xem 3 anh em nhà đó khác nhau như thế nào:
-
Với Print: Xuất kết quả ra màn hình nhưng con trỏ chuột không xuống dòng.
-
Với Println: Xuất kết quả ra màn hình đồng thời con trỏ chuột nhảy xuống dòng tiếp theo.
-
Với Printf: Xuất ra màng hình kết quả đồng thời có thể định dạng được kết quả đó nhờ vào các đối số thích hợp.
Để thấy rõ sự khác nhau trên, chúng ta hãy làm thử một ví dụ nhỏ.
Chẳng hạn như in 2 câu: “Tôi yêu lập trình. Thích Java và uống cafe
” hiển thị dưới dạng 2 dòng trên màn hình console.
Print:
public class Print {
public static void main(String[] args) {
System.out.print("Tôi yêu lập trình.");
System.out.print("Thích Java và uống cafe.");
}
}
Println:
public class Print {
public static void main(String[] args) {
System.out.println("Tôi yêu lập trình.");
System.out.println("Thích Java và uống cafe.");
}
}
Printf:
public class Printf {
public static void main(String[] args) {
System.out.printf("%s\n%s", "Tôi yêu lập trình.", "Thích Java và uống cafe.");
}
}
Rõ ràng là Printf có gì đó đáp ứng nhiều nhu cầu cao hơn đúng không?
Ở đây chúng ta chỉ cần tập trung nhìn cho ra sự khác biệt giữa Printf với phần còn lại, đặc biệt là ở cú pháp – có gì đó quen thuộc với những ai đã từng làm việc với ngôn ngữ C.
3. Ví dụ sử dụng printf trong Java
Java không tự nhiên phát triển một lớp Printf mới mà không có gì đặc biệt cả.
Thông thường, những công nghệ ra đời sau luôn luôn chiếm được ưu thế và nổi trội do được cập nhật để tiên tiên hơn các thế hệ trước đó.
Với Printf thì Java cũng đã làm tương tự.
Bây giờ, chúng ta hãy cùng điểm qua xem Printf có gì mới và khác biệt nhé.
Cú pháp:
System.out.printf(local, format, arguments1, arguments2,…, argumentsn);
Trong đó:
-
Local: Nếu khác null sẽ được tự động định dạng theo khu vực.
-
format: Quy định chuẩn định dạng đầu ra cho các đối số
-
Các argument: Đối số cần định dạng.
Các bộ định dạng có sẵn trong Printf:
-
%c
: Ký tự
-
%d
: Số thập phân (số nguyên) (cơ số 10)
-
%e
: Dấu phẩy động theo cấp số nhân
-
%f
: Dấu phẩy động
-
%i
: Số nguyên (cơ sở 10)
-
%o
: Số bát phân (cơ sở 8)
-
%s
: Chuỗi
-
%u
: Số thập phân (số nguyên) không dấu
-
%x
: Số trong hệ thập lục phân (cơ sở 16)
-
%t
: Định dạng ngày / giờ
-
%%
: Dấu phần trăm
-
\%
: Dấu phần trăm
Và bây giờ, chúng ta nhau lướt qua các ví dụ để thấy sự mạnh mẽ của “kẻ sinh sau” – Printf
-
Có thế dùng local trong printf để in ra định dạng ngày của khu vực nào đó. Ở đây mình chọn nước Đức.
import java.sql.Date;
import java.util.Locale;
public class Printf {
public static void main(String[] args) {
Date data = new Date(0);
System.out.printf(Locale.GERMANY, "Ngày giờ hiện tại: %tc", data);
}
}
-
In chuỗi từ một chuỗi thường “ Học lập trình là một hạnh phúc” thành chuỗi in hoa thông qua tham số format
public class Printf {
public static void main(String[] args) {
String string = "Học lập trình là một hạnh phúc";
System.out.printf("%S\n", string);
}
}
-
In số nguyên và số thực ra màn hình (tương tự như C 😊)).
public class Printf {
public static void main(String[] args) {
int x = 666;
double y = 33.99;
System.out.printf("%d\t%.2f", x, y);
}
}
-
Các ví dụ về in dữ liệu dịnh dạng Boolean
public class Printf {
public static void main(String args[]){
System.out.printf("%b%n", false); // false
System.out.printf("%b%n", 0.5); // true
System.out.printf("%b%n", "false"); // true
}
}
-
Một số định dạng về in dữ liệu ngày tháng với printf
import java.util.Date;
public class Printf {
public static void main(String args[]){
Date date = new Date();
System.out.printf("%tT%n", date);
System.out.printf("H : %tH, M: %tM, S: %tS%n",date,date,date);
System.out.printf("%s %tB %<te, %<tY", "Ngày hiện tại: ", date);
System.out.printf("%1$td.%1$tm.%1$ty %n", date);
System.out.printf("%s %tb %<te, %<ty", "Ngày hiện tại: ", date);
}
}
Sau một loạt ví dụ thì mình thực sự thấy rằng Printf giúp chúng ta rất nhiều trong việc in các dữ liệu theo nhiều kiểu định dạng cần thiết.
Thực tế là chúng ta có thể dùng Printf cho toàn bộ các hoạt động in dữ liệu ra màn hình, tuy nhiên, Print và Println vẫn nhanh hơn và phổ biến hơn trong các trường hợp dữ liệu không cần định dạng phức tạp.
Sau bài viết này, mình hi vọng các bạn sẽ có thể sử dụng được Printf trong Java một cách thành thạo và phục vụ tốt cho việc coding của mình. Chúc bạn học tốt!
> Bạn đang tìm hiểu về Java và muốn học Java nhanh hơn, bài bản hơn? Tham gia ngay KHÓA HỌC JAVA với chuyên gia / đối tác tuyển dụng trực tiếp của NIIT - ICT Hà Nội.
> Đọc thêm: Phương thức parseInt trong Java
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python