Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Mình có đoạn lệnh này :
public class Lab3_lythuyet {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Nhập số sinh viên : ");
int ssv = scanner.nextInt();
String a[] = new String[ssv];
for(int i = 0 ; i< ssv; i++)
{
System.out.print("Nhập sinh viên thứ " + (i+1) + ":");
a[i] = scanner.nextLine();
}
}
}
Nó bị trôi lệnh không cho nhập sinh viên thứ 1 , chỉ được bắt đầu nhập từ sv thứ 2
đã thử dùng scanner.next() trước a[i] = scanner.nextLine() nhưng khi xuất thì chỉ xuất ra phần chuỗi phí sau khoảng trắng ..
VD : nhập Minh Dương => xuất ra Dương .
Mong mọi người giúp đỡ !!!
Lỗi của bạn nằm ở chỗ số sinh viên. Sau khi đọc vào số sinh viên thì bộ đệm sẽ chừa lại dấu \n sau khi bạn nhấn enter. Vì thế nên ở sinh viên đầu tiên sẽ nhận ngay kí tự \n và bỏ qua sinh viên đầu tiên. Để tránh lỗi trên bạn nên dùng:
Mình nghĩ bạn nên dùng BufferedReader từ luồng InputStreamReader thì hay hơn @@