Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Cách lọc từ khóa TH và THCS để tách trường

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    182

    Post Cách lọc từ khóa TH và THCS để tách trường

    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ả.

  2. #2
    Ngày gia nhập
    05 2011
    Bài viết
    35

    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

  3. #3
    Ngày gia nhập
    03 2010
    Bài viết
    122

    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?

  4. #4
    Ngày gia nhập
    05 2011
    Bài viết
    35

    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

  5. #5
    Ngày gia nhập
    03 2011
    Bài viết
    124

    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:
    1. int a = chuoi.IndexOf("TH");
    2. if(chuoi.IndexOf("TH") > 0 && chuoi.Substring(chuoi, a + 2, 2) != "CS")
    3. {
    4.        // là chuỗi 1: TH, THCS.
    5. }
    6. {
    7.        // là chuỗi 2: THCS
    8. }
    Chia sẻ là học hỏi

  6. #6
    Ngày gia nhập
    06 2007
    Bài viết
    182

    Mặc định Cách lọc từ khóa TH và THCS để tách trường

    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ả.

  7. #7
    Ngày gia nhập
    06 2007
    Bài viết
    182

    Trích dẫn Nguyên bản được gửi bởi emxinh27 Xem bài viết
    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:
    1. int a = chuoi.IndexOf("TH");
    2. if(chuoi.IndexOf("TH") > 0 && chuoi.Substring(chuoi, a + 2, 2) != "CS")
    3. {
    4.        // là chuỗi 1: TH, THCS.
    5. }
    6. {
    7.        // là chuỗi 2: THCS
    8. }
    cách này ko ổn lắm vì chuỗi của mình nó ko cố định do người dùng tự đưa lên, cách cùa bạn cộng vị trí nên phải đúng chính xác thì mới ổn. Có lẽ phải dùng ký tự đại diện nhưng tớ chưa thử. Để xem cách của bạn bên trên kia dùng ^ có đúng ko
    Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.

  8. #8
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    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()...

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    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

  10. #10
    Ngày gia nhập
    06 2007
    Bài viết
    182

    cảm ơn các bạn nhiều, mình đã tìm ra được cách tách rồi
    Code:
     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ả.

Các đề tài tương tự

  1. Tìm 1 khóa và mọi khóa của lược đồ quan hệ viết bằng VC++ (MFC Source code)
    Gửi bởi gianghoplus trong diễn đàn Dự án & Source code VC++
    Trả lời: 6
    Bài viết cuối: 11-04-2016, 03:25 PM
  2. Chung cư mini Ngọc Trục-(20-02), 37m2, đối diện THCS Đại Mỗ, Từ Liêm
    Gửi bởi nhuphuong_87 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 19-02-2013, 03:05 PM
  3. Hãy cùng chúng tôi mang chăn màn tới trường thcs chiềng nơi-sơn la
    Gửi bởi SSEAPYVIETNAM trong diễn đàn Giải trí - Thư giãn
    Trả lời: 1
    Bài viết cuối: 24-03-2012, 12:04 PM
  4. Đưa khóa vào cây nhị phân tìm kiếm, biểu diễn khi có 2 khóa trùng nhau như thế nào?
    Gửi bởi bubu333 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 26-08-2011, 08:57 AM
  5. Tạo 1 khóa và chỉnh sữa khóa trong regedit, secpol và gpedit
    Gửi bởi azurelonely trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 01-06-2011, 08:43 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn