Hỏi về code kiểm tra string có nằm trong array hay không

Bài tập: Cho 1 biến string kiểm tra xem nó có nằm trong mảng string Array ko? Code của em sai chỗ nào ạ

package exercise2;
import java.util.Scanner;
public class ArrayContains {
    public static Scanner sc = new Scanner(System.in);
    public static void nhapArray(String[]arr,int n){
        for (int i = 0; i<n;i++){
            System.out.print("Nhập stringArray["+i+"] = ");
            arr[i] = sc.nextLine();
        }
    }
    public static void kiemTra(String[]arr1,int n){
        String valueCheck;
        System.out.print("Nhập sValue cần check: ");
        valueCheck = sc.next();
        System.err.println(valueCheck);
       for (int i=0;i<n;i++){
            if (valueCheck==arr1[i]) {
                System.out.println("Contained!");
                break;
            }
            else if (i==n-1) System.out.println("No Contain!");
        }
    }
    public static void main(String[] args) {
        System.out.print("Nhập độ dài mảng: ");
        int index = sc.nextInt();
        sc.nextLine();
        String[] stringArray = new String[index];
        nhapArray(stringArray,index);
        kiemTra(stringArray,index);
    }
}

Đây là màn hình lúc in ra

bài này khá đơn giản, đối với những cái đơn giản như này thì sao bạn không thử in ra nhiều hơn

         for (int i=0;i<n;i++){
            System.out.println("So sanh " + valueCheck + " va "  + arr1[i] + " : " + (valueCheck==arr1[i] ? "yes" : "no")); // thêm dòng này, biết đâu thấy gì đó hay ho

            if (valueCheck==arr1[i]) {
                System.out.println("Contained!");
                break;
            }
            else if (i==n-1) System.out.println("No Contain!");
        }
4 Likes

Vẫn sai anh ạ, Em thấy ý tưởng code e đúng rồi, nhưng cái đoạn kiểm tra nó bị sai đâu đấy. Lúc nhập phần tử mảng nó có nhận ký tự enter ko ạ? chứ em nhập thế nào thì nó vẫn báo No Contain.

1 Like

So sánh xâu sai rồi cậu :smile:
Cậu phải dùng equals để so sánh chứ?

if(valueCheck.equals(arr1[i])) …

5 Likes

đang chờ đợi bạn ấy gắn thêm dòng code này và hỏi “vì sao chuỗi giống nhau nhưng so sánh == lại ra false?”
mà có vẻ như bạn ấy chỉ quan tâm tới việc done bài tập :rofl:

5 Likes

vậy thì bạn nên đặt ra câu hỏi là 2 chuỗi giống nhau nhưng sao so sánh == thì nó lại ra false
sau đó bạn sẽ search google: java string compare và bạn sẽ nhận được nhiều điều hay ho hơn trong lúc tìm kiếm

6 Likes

Oke anh, em cứ nghĩ nó so sánh giống bình thường :v

1 Like

yeah a, em mới học, biết dùng gg nhưng lại nghĩ ko ra từ khoá để search đúng :v

1 Like

Em có thể hỏi dòng else if (i==n-1) System.out.println(“No Contain!”); là như thế nào không, cái điều kiện if ấy ạ

Check đến phần tử cuối cùng rồi mà vẫn chưa thấy thì in ra là không tồn tại thôi

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