30/09/2018, 17:36
Hỏi code về tìm kiếm họ trong danh sách học sinh
Mình có viết một đoạn code thế này, nhưng khi cho in ra kết quả những người có họ tương ứng thì chỉ in được họ, không in được tên đầy đủ, có thành nào giúp với!
public class Study {
public static void main(String[] args) {
Scanner inPut = new Scanner(System.in);
String [] hocSinh = new String[100] ;
System.out.print("Nhập số học sinh: ");
int n=inPut.nextInt();
for (int i=0; i<n; i++){
System.out.print("Nhập học sinh thứ "+(i+1)+": ");
hocSinh[i] = inPut.next();
inPut.nextLine();
}
System.out.print("Nhập họ muốn tìm: ");
String ho = inPut.nextLine();
System.out.println("Những người có họ " + ho + ": ");
for (int i=0; i<n; i++){
if(hocSinh[i].substring(0, (ho.length())).equals(ho)){
System.out.println(hocSinh[i]+" ");
}
}
}
}
Bài liên quan
mình nghĩ code của bạn in ra đc họ tên đầy đủ rồi chứ nhỉ .
Không cần dòng này.
biểu thức này đâu phải tìm họ r so sánh đâu. theo mình sửa thành
mình góp ý cho bạn nên dùng arrayList , và tốt hơn thì nên có class Học Sinh bao gồm 2 thuộc tính là họ tên và số thứ tự . làm kiểu này nông dân quá
Phải dùng nextLine, vì method next này chỉ lấy các kí tự đến dấu cách là ngừng rồi.
stackoverflow.com
What's the difference between next() and nextLine() methods from Scanner class?
@Rok_Hoang nói chuẩn đấy , hồi học java core , mình hay bị thế
chắc chỗ này bạn ấy nhầm cái này:
p/s: Mình cũng mới học đến khúc này à giống problem của gets với scanf bên C
Tks bác, cách bác làm hơi mới vs mình, dù sao cũng tks