Tất tần tật về printf trong Java

Ngày đăng: 23/06/2020   -    Cập nhật: 14/04/2021
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à printprintln.

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

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 PrintPrintln 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
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!