Java - Nhập vào thông tin của 1 sinh viên và hiển thị ra màn hình.

Nhập vào thông tin của một sinh viên từ bàn phím (thông tin đó bao gồm họ tên, năm sinh và địa chỉ). Sau đó hiển thị các thông tin vừa nhập ra màn hình Console.

Bài giải

-------------------- ######## --------------------

Bài giải
package baitap;

import java.util.Scanner;

public class StudentInformation {	
	public static void main(String[] args) {
		String name;
		int year;
		String address;
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("Nhập vào họ tên của sinh viên: ");
		name = scanner.nextLine();
		System.out.println("Nhập vào năm sinh của sinh viên: ");
		year = scanner.nextInt();
		System.out.println("Nhập vào địa chỉ của sinh viên: ");
		address = scanner.nextLine();
		
		System.out.println("Họ tên của sinh viên: " + name);
		System.out.println("Tuổi của sinh viên =  " + year);
		System.out.println("Địa chỉ của sinh viên: " + address);
	}

}
Khi biên dịch chương trình thì chúng ta sẽ có kết quả như sau:

Các bạn thấy trong kết quả hiển thị thì sau khi nhập năm sinh và nhấn Enter để tiếp tục nhập địa chỉ của sinh viên thì lúc này trình biên dịch sẽ hiển thị kết quả với địa chỉ của sinh viên bằng rỗng. Hiện tượng này gọi là hiện tượng trôi lệnh khi sử dụng Scanner trong Java.

Vậy vì sao lại xảy ra hiện tượng trôi lệnh này? Và nó xảy ra khi nào? Như trong đoạn chương trình trên thì các bạn thấy hiện tượng trôi lệnh xảy ra khi chúng ta nhập vào một số và sau đó nhập vào một chuỗi. Lý do là vì khi các bạn nhập số xong và nhấn Enter thì lúc này dòng lệnh address = scanner.nextLine(); sẽ nhận ký tự Enter là giá trị của chuỗi đó. Và khi hiển thị thì giá trị địa chỉ của sinh viên sẽ bằng rỗng.

Để xử lý hiện tượng trôi lệnh trong Java, chúng ta có nhiều cách, nhưng trong bài này tôi sẽ giới thiệu cách phổ biến nhất (về hiện tượng trôi lệnh trong Java tôi sẽ làm thành một bài riêng để các bạn tham khảo).

Chúng ta sửa đoạn chương trình trên như sau:

Bài giải
package baitap;

import java.util.Scanner;

public class StudentInformation {	
	public static void main(String[] args) {
		String name;
		int year;
		String address;
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("Nhập vào họ tên của sinh viên: ");
		name = scanner.nextLine();
		System.out.println("Nhập vào năm sinh của sinh viên: ");
		/*
		 *  sử dụng Integer.parseInt() để khắc phục hiện tượng trôi lệnh
		 *  Integer.parseInt() sẽ chuyển dữ liệu kiểu chuỗi (String) thành số nguyên (Integer).
		 */
		year = Integer.parseInt(scanner.nextLine());
		System.out.println("Nhập vào địa chỉ của sinh viên: ");
		address = scanner.nextLine();
		
		System.out.println("Họ tên của sinh viên: " + name);
		System.out.println("Tuổi của sinh viên =  " + year);
		System.out.println("Địa chỉ của sinh viên: " + address);
	}

}
Đến đây, chúng ta đã có thể nhập được địa chỉ cho sinh viên và kết quả hiển thị như sau:

Trong bài tập này tôi đã giới thiệu đến các bạn về cách xử lý hiện tượng trôi lệnh khi sử dụng Scanner trong Java. Đây là một bài nền tảng để các bạn có thể giải quyết tốt các bài tập tiếp theo. Chúc các bạn thành công!

Nguồn: freetuts.net