Kiểm tra chuỗi nhập vào chứa bất kỳ 1 trong số phần tử nào từ mảng

Liên hệ QC

hadoan-pap

Thành viên tiêu biểu
Tham gia
8/7/15
Bài viết
453
Được thích
18
Dạ em chào mọi người!

Em có mảng Như này ạ : ("apple",pencil","ball")

Em có chuỗi nhập vào: "I like an apple"

Em muốn 1 đoạn code để kiểm tra xem chuỗi nhập vào chứa bất kỳ 1 trong số các phần tử từ mảng không, nếu có trả về True ạ.

Thay vì loop từng phần từ trong mảng để kiểm tra xem nó có tồn tại trong chuỗi nhập vào, thì em muốn kiểm tra chuỗi nhập vào chưa bất kỳ 1 trong các phần tử từ mảng không ạ.

Em Xin cảm ơn ạ!
 
Dạ em chào mọi người!

Em có mảng Như này ạ : ("apple",pencil","ball")

Em có chuỗi nhập vào: "I like an apple"

Em muốn 1 đoạn code để kiểm tra xem chuỗi nhập vào chứa bất kỳ 1 trong số các phần tử từ mảng không, nếu có trả về True ạ.

Thay vì loop từng phần từ trong mảng để kiểm tra xem nó có tồn tại trong chuỗi nhập vào, thì em muốn kiểm tra chuỗi nhập vào chưa bất kỳ 1 trong các phần tử từ mảng không ạ.

Em Xin cảm ơn ạ!
Thử code này cho 1 string:
Mã:
Option Explicit

Sub abc()
Dim a(), b As String
a = Array("apple", "pencil", "ball")
b = "pencil"
If IsError(Application.Match(b, a, 0)) Then
    MsgBox b & " không có trong array"
Else
    MsgBox b & " có trong array"
End If
End Sub
Chuỗi nhập vào của bạn thì phải split ra, lặp từng phần một
 
Upvote 0
Thử code này cho 1 string:
Mã:
Option Explicit

Sub abc()
Dim a(), b As String
a = Array("apple", "pencil", "ball")
b = "pencil"
If IsError(Application.Match(b, a, 0)) Then
    MsgBox b & " không có trong array"
Else
    MsgBox b & " có trong array"
End If
End Sub
Chuỗi nhập vào của bạn thì phải split ra, lặp từng phần một
Em Xin cảm ơn ạ!
 
Upvote 0
Thay vì loop từng phần từ trong mảng để kiểm tra xem nó có tồn tại trong chuỗi nhập vào, thì em muốn kiểm tra chuỗi nhập vào chưa bất kỳ 1 trong các phần tử từ mảng không ạ.

Xoắn hết cả não luôn.

Ngay cái câu bạn miêu tả thì đã nói lên tất cả rồi còn hỏi làm gì nữa?

Đối chiếu "từng phần từ trong mảng để kiểm tra xem nó có tồn tại trong chuỗi nhập vào"







"kiểm tra chuỗi nhập vào chưa bất kỳ 1 trong các phần tử từ mảng"

thì kiểu gì cũng phải so sánh với từng phần từ của mảng (danh sách các từ cho trước).

Có chăng hỏi xem cách nào 'hay' hơn.
Hay hơn ở đây là tức xem duyệt theo cách nào ít lần hơn.
Nếu chuỗi đưa vào ít từ hơn danh sách cho trước thì tách các từ trong chuỗi rồi đối chiếu, và ngược lại.

Mỗi thế thôi.
 
Upvote 0
...Có chăng hỏi xem cách nào 'hay' hơn.
Hay hơn ở đây là tức xem duyệt theo cách nào ít lần hơn.
Nếu chuỗi đưa vào ít từ hơn danh sách cho trước thì tách các từ trong chuỗi rồi đối chiếu, và ngược lại.
...
Đó là chỉ nhuyễn ở mức 1.
Mức kế là phải biết từ nào thông dụng và xét nó trước.
Nhưng nhuyễn mức nào thì cũng ngoài câu hỏi của thớt.

Code bạo động cho nó đúng nồi nào úp vung nấy:

For Each s In Split(chuoiNhapVao, " ")
if UBound(Filter(mảng, s)) >= 0 Then
co = True
Exit For
End If
Next s
If co Then ...

Nếu code xịn thì dùng Join để nối các phần tử trong mảng thành 1 chuỗi Pattern. Nhét vào RegEx cho nó sreach giùm, vòng lặp hay giải thuật gì thì cũng là chuyện của nó. Code mình không thấy vòng lặp là được.

Tôi không làm chuyện viết code giùm cho câu hỏi bâng quơ đâu. Gợi ý đến thế mà vẫn không biết code thì phải trả tiền tôi mới làm.
Chú cho các bạn chưa biết chuyện "cạy tiền" của tôi: tôi chỉ đòi tiền cho diễn đàn. Về vấn đề tiền túi, tôi viết code phơ-ri-lăng ăn tiền nhiều hơn cho nên
 
Upvote 0
Web KT
Back
Top Bottom