01/10/2018, 09:28

Thắc mắc về Scanner.nextLine() trong Java

em chào các anh chị. Em không hiểu vì sao khi em run file thì nó không cho nhập tên của học sinh thứ nhất là bị trôi luôn là sao ạ? Em xin cảm ơn ạ

Nguyễn Văn Nam viết 11:34 ngày 01/10/2018

Cái này có thể hiểu đơn giản như sau. Khi nhập số lượng học sinh em nhập số 2 rồi ấn enter. Thì số 2 sẽ được lưu vào biến “l” tuy nhiên lúc này ký tự xuống dòng (khi ấn Enter) sẽ tồn tại trong buffer và sẽ được lưu vào biến a[j] ở đây j = 0. Nó dẫn tới hiện tượng trôi như trong ví dụ của e. Để giải quyết thì ngay sau dòng int l = sc.nextInt(); nên thêm dòng sc.nextLine();

stackoverflow.com
blekione

Scanner is skipping nextLine() after using next() or nextFoo()?

java, io, java.util.scanner
asked by blekione on 04:37PM - 27 Oct 12
Phan Thành Thắng viết 11:35 ngày 01/10/2018

Em hiểu rồi ạ. Em cảm ơn anh.

Tuw Nguyen viết 11:41 ngày 01/10/2018

Còn cách 2 thì đối với các biến số như Integer, Double, Float thì e dùng câu lệnh này lun nhé!
int a = Integer.parseInt(sc.nextLine());
Viết như thế này thì ko cần thêm dòng sc.nextLine() nữa cho dài code!

Bài liên quan
0