Với những chuỗi này thì có được cho là có chuỗi th không bạn (có các kí tự đặt biệt trước và sau nó) :
$TH, THCS,
hoặc
TH^, TT
Mình đang có vấn đề sau:
Ví dụ nếu chuỗi 1 là:TH, THCS.
chuỗi 2 là: THCS
Nhiệm vụ đặt ra là làm sao phân biệt được 2 chuỗi này để có thể chỉ lấy ra được chuỗi có từ "TH".
mình cũng ko biết nhiều về sử lý string nên mong các bạn giúp đỡ
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Với những chuỗi này thì có được cho là có chuỗi th không bạn (có các kí tự đặt biệt trước và sau nó) :
$TH, THCS,
hoặc
TH^, TT
Thực sự là ko hiểu ý của bạn muốn hỏi gì?
Bạn có thể hỏi rõ hơn ko?
Mình nghĩ bạn ấy định hỏi 1 từ nào đó (chuỗi) có xuất hiện trong chuỗi hay không, nhưng lại đưa ra ví dụ 2 chuỗi nên hơi khó hiểu
có nhiều cách lắm, còn tùy thuộc chuỗi của bạn như thế nào
Với 2 chuỗi trên, Bạn thử cái này xem:
Visual C# Code:
Chia sẻ là học hỏi
Mình quên mất, ý của mình mình diễn tả ko đủ giờ cụ thể như này:
chuỗi 1: TH
chuỗi 2: THCS
Chuỗi 3: THCS,TH
giờ làm sao mà phân biệt 3 chuỗi này, làm sao mà mình có thể nhâạ dạng chính sác được chuỗi nào là chuỗi 1, chuỗi nào là chuỗi 2 và 3 (chú ý từ TH bị lẫn trong THCS vì thế nên mới sinh rắc rối này nếu mà bạn chỉ lấy từ khóa TH ko thì ko sao nhưng nếu phân biệt với THCS thì ko được)
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Hix. 3 chuỗi của bạn có độ dài khác nhau mà. Dùng cái Length là biết liền:
length=2=>chuoi 1
length=4=>chuoi 2
length=7=>chuoi 3
như thế có được không bạn? nếu bạn sợ họ chèn thêm dấu cách gì đó thì xài mấy cái hàm để cắt khoàng trống, chẳng hạn Trim()...
Tôi đoán chừng vấn đề là có hai từ khóa, TH và THCS (chắc có nhiều từ khóa nhưng vd chỉ đưa ra 2)
Chuõi 1 chứa từ khóa TH
Chuỗi 2 chứa từ khóa THCS nhưng không chứa từ khóa TH
Chuỗi 3 chứa cả hai từ khóa THCS và TH
Vấn đề là nếu dùng hàm để tim string (vd IndexOf) thì TH sẽ bị matched vào THCS
Nếu đúng vậy thì có 2 cách làm:
1. Dùng hàm split để split chuỗi ra thành từng từ riêng và so sánh trực tiếp từng từ, như vậy sẽ tránh được lẫn lộn.
2. Dùng RegEx để match.
vd. mau = "\b" + tuKhoa + "\b"; ===> nếu tuKhoa là "TH" thì mẫu này sẽ chấp nhận TH nhưng không chấp nhận THCS hay CTHS
cảm ơn các bạn nhiều, mình đã tìm ra được cách tách rồiCode:private bool slipStringTH(string swap) { if (swap.IndexOf("THCS") >= 0) swap=swap.Remove(swap.IndexOf("THCS"), 4); if (swap.IndexOf("TH") >= 0 || swap.IndexOf("Tiểu học") >= 0 || swap.IndexOf("tiểu học") >= 0) return true; else return false; }
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.