Bữa nay tui có tìm hiểu về vấn đề trôi dòng lệnh ở java ví dụ như sau:
...
{
Scanner scan = new Scanner( System.in );
int number = scan.nextInt();
String str = scan.nextLine();
...
}
Để giải quyết thì có nhiều cách (new lại scan, thêm nextLine(), hoặc chuyển hết qua xử lý chuỗi, etc). Trong đó có cách là dùng nextLine() làm tui hơi bị thắc mắc một chút, tui đã google cách hoạt động của nó như sau:
The nextLine() method of java.util.Scanner class advances this scanner past the current line and returns the input that was skipped. This function prints the rest of the current line, leaving out the line separator at the end.
Câu hỏi của tui là nó xử lý cái ‘\n’ như thế nào? Có giống cái nào dưới đây không? ( ngôn ngữ C )
char str[100];
scanf("%[^\n] %*c", str);// là cái này
scanf("%[^\n]", str); // hay là cái này
Tui đoán là cái scanf("%[^\n] %*c", str);
nhưng không chắc nó có hoạt động như thế hay là kiểu khác. Tui có thử “đọc” phương thức nextLine() trong Scanner.java rồi nhưng trình không đủ để hiểu. Mong mọi người giải đáp.
Xin cảm ơn.