hỏi hàm string equals()
mình có đề bài ntn:
*Số lượng sinh viên cần nhập từ bàn phím.
*Khai báo 1 mảng gồm danh sách họ tên sinh viên
*Tên từng sinh viên nhập từ bàn phím
- Sau khi nhập xong, chương trình hỏi nhập tên sinh viên muốn tìm kiếm
- Tìm và in ra kết quả là có trong danh sách hay không.
code:
package BaiTap;
import java.util.Scanner;
public class Mang {
public static void main(String[] args) {
int n;
Scanner scanIn = new Scanner(System.in);
System.out.println("Nhap vao so sinh vien: ");
n = scanIn.nextInt();
scanIn.nextLine();
String[] ten = new String[n];
for (int i = 0; i < n; i++) {
System.out.println("Nhap sinh ten sinh vien thu " + i);
ten[i] = scanIn.nextLine();
}
System.out.println("Nhap ten sv muon tim: ");
String searchName = scanIn.nextLine();
for (int i = 0; i < n; i++) {
if (searchName.equals(ten[i])==true) {
System.out.println("Ten sv co trong danh sach");
}
else {
System.out.println("Ten sv khong co trong danh sach");
}
}
}
}
không hiểu sao mình lại bị sai ở đoạn so sánh 2 string:
System.out.println("Nhap ten sv muon tim: ");
String searchName = scanIn.nextLine();
for (int i = 0; i < n; i++) {
if (searchName.equals(ten[i])==true) {
System.out.println(“Ten sv co trong danh sach”);
}
else {
System.out.println(“Ten sv khong co trong danh sach”);
}
}
Điều kiện thoát khỏi vòng lặp của bạn đâu?
điều kiện thoát ở chỗ nào vậy bạn vòng for mình có thiếu gì đâu
bài bạn viết không sai, chạy ra kết quả. Mình đã thử nhưng mà chỗ "nhập tên sinh viên thứ " nên là i+1 và bản thân hàm equals đã trả về kết quả là boolean (true hoặc false) nên bạn chỉ cần dùng lệnh if(searchName.equals(ten[i])) là được! còn nữa với kiểu bài này theo mình nên sử dụng lớp, bạn tạo 1 class lấy tên là Sinhvien, sau đó sử dụng ArrayList, khi đó bạn sẽ dễ mở rộng các thao tác với đối tượng sinh viên về sau hơn )
tìm thấy rồi thì dừng vòng lặp lại, cho nó chạy tiếp thì nó quét nốt các trường hợp còn lại nên sẽ hiện ra cả 2 kết quả
Mình thì thấy chương trình chạy được, nhưng mình nghĩ trong vòng for của bạn nên có break khi đã tìm thấy tên !
Nên dùng hàm equalsIgnoreCase() - không phân biệt chữ hoa chữ thường. Và bạn cũng nên viết riêng 1 method để tìm kiếm tên sinh viên, như vậy sẽ thuận tiện hơn…