Xem thêm

Nhập xuất dữ liệu sử dụng Scanner trong Java

Huy Erick
Trong bài viết này, mình sẽ hướng dẫn các bạn về cách sử dụng Scanner trong Java để nhập và xuất dữ liệu. Có lẽ, khi làm phần Java core, bạn đã từng gặp phải...

Trong bài viết này, mình sẽ hướng dẫn các bạn về cách sử dụng Scanner trong Java để nhập và xuất dữ liệu. Có lẽ, khi làm phần Java core, bạn đã từng gặp phải câu hỏi "Hãy nhập và xuất dữ liệu từ bàn phím" nhưng lại không biết cách sử dụng. Đừng lo, bài viết này sẽ giải đáp mọi thắc mắc của bạn!

Có thể hiểu Scanner bằng một ví dụ thực tiễn

Nhìn vào ví dụ dưới đây, bạn có thể thấy một máy in. Điều này có vẻ không liên quan gì đến bài viết, đúng không? Nhưng hãy tưởng tượng Scanner trong Java như là một cái máy in. Nó có khả năng nhập và xuất dữ liệu. Khi bạn muốn photo một giấy tờ CMND, công việc đầu tiên là nhập vào thông tin cần in, sau đó máy sẽ trả về cho bạn một bản sao CMND. Đó chính là cách nhập và xuất dữ liệu với Scanner trong Java.

Scanner áp dụng trong trường hợp nào?

Khi học một kiến thức nào đó, việc hiểu và áp dụng vào thực tế cực kỳ quan trọng. Với Scanner trong Java, hãy giả sử bạn có một yêu cầu như sau: Nhập vào một chuỗi từ bàn phím. Với trường hợp này, chuỗi nhập từ người dùng là không biết trước. Lúc này, bạn có thể sử dụng Scanner.

Cách sử dụng Scanner

Để sử dụng lớp Scanner và các phương thức của nó, bạn cần import gói java.util.Scanner. Sau đó, tạo một đối tượng Scanner như sau:

Scanner input = new Scanner(System.in);

Bây giờ, để nhập dữ liệu với Scanner, chúng ta có thể nhập chuỗi, số nguyên, số thực, ký tự... Chỉ cần học và áp dụng các phương thức cơ bản của lớp Scanner như:

  • next(): Trả về nội dung trước khoảng trắng (String)
  • nextLine(): Trả về toàn bộ nội dung của một chuỗi nhập vào (String)
  • nextInt(): Trả về kiểu dữ liệu int

Với những phương thức này, bạn hoàn toàn có thể xử lý các bài toán thực tế.

Phân biệt phương thức next() và nextLine() trong Scanner là gì?

Ở trên, mình đã giới thiệu hai phương thức của Scanner là next()nextLine(). Cả hai đều trả về kiểu dữ liệu là String. Nhưng sự khác biệt giữa chúng là gì? Hãy xem ví dụ sau:

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        // Sử dụng nextLine() để trả về một chuỗi
        System.out.println("Nhập vào họ và tên: ");
        String fullname1 = input.nextLine();
        System.out.println("Họ tên bạn vừa nhập: " + fullname1);

        // Sử dụng next() để trả về nội dung trước khoảng trắng
        System.out.println("Nhập vào họ và tên: ");
        String fullname2 = input.next();
        System.out.println();
        System.out.println("Họ tên bạn vừa nhập: " + fullname2);
    }
}

Kết quả:

Nhập vào họ và tên: John Doe
Họ tên bạn vừa nhập: John Doe
Nhập vào họ và tên: John Doe
Họ tên bạn vừa nhập: John

Qua ví dụ trên, bạn đã thấy sự khác biệt giữa phương thức next()nextLine() trong Scanner:

  • next(): Trả về nội dung trước khoảng trắng (String)
  • nextLine(): Trả về toàn bộ nội dung của một chuỗi nhập vào (String)

Bài tập về Scanner trong Java

Để áp dụng kiến thức về Scanner, chúng ta hãy làm một số bài tập nhỏ.

Bài 1: Nhập vào một tên người yêu cũ.

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("Nhập vào tên người yêu cũ: ");
        String mylove_old = input.nextLine();
        System.out.println("Tên người yêu cũ: " + mylove_old);
    }
}

Bài 2: Nhập vào hai số và tính tổng của hai số đó.

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("Nhập vào số thứ 1: ");
        int so1 = input.nextInt();

        System.out.println("Nhập vào số thứ 2: ");
        int so2 = input.nextInt();

        int kq = so1 + so2;

        System.out.println("Số thứ 1: " + so1);
        System.out.println("Số thứ 2: " + so2);
        System.out.println("-");
        System.out.println("Kết quả: " + kq);
    }
}

Bài 3: Nhập danh sách sinh viên trong Java.

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("Nhập vào họ tên: ");
        String hoten = input.nextLine();

        System.out.println("Nhập vào tuổi: ");
        int tuoi = input.nextInt();

        // Chỉ nhập khi bạn nhấn Enter sau khi nhập tuổi
        input.nextLine();

        System.out.println("Nhập vào tên lớp: ");
        String tenlop = input.nextLine();

        System.out.println(">> THÔNG TIN SINH VIÊN");
        System.out.println("Họ tên: " + hoten);
        System.out.println("Tuổi: " + tuoi);
        System.out.println("Tên lớp: " + tenlop);
    }
}

Chúc các bạn học tốt và thực hành thành công!

1