Nhập chuỗi trong Java

Mọi người giải đáp hộ mình vì sao khi mình khai báo lệnh scan như thế này thì biến s là rỗng vậy. Có tìm hiểu những chưa hiểu lắm về vấn đề này.

int a = sc.nextInt();
String s = sc.nextLine();

Viết như vậy thì mình nhận được biến s rỗng. Còn nếu mình viết như này thì mới nhận được kết quả của biến s:

int a = sc.nextInt();
String s = sc.nextLine();
s = sc.nextLine();

Mới học nên có gì sai mn chỉ bảo góp ý chứ mình không thích góp ý kiểu cà khịa và lên mặt. :slight_smile:

Tại vì hàm nextInt() chỉ đọc số nguyên thôi, nên khi bạn nhập số integer xong bấm Enter thì hàm nextLine nó đọc kí tự enter (newline \n) này, kết quả là một dòng rỗng.

Để hiểu hơn, bạn bỏ đoạn code skip newline sau đoạn code nextInt() thì dòng nextLine sẽ được execute.


skip newline: sc.skip("[\r\n]+")

5 Likes

Cũng giống C/C++ thôi.
Sau khi nhập số, muốn lấy dòng tiếp theo thì phải bỏ qua (ignore/skip) kí tự xuống dòng.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?