So sánh 2 chuỗi

Mọi người ơi, cho mình hỏi chút, mình có 1 bài toán tìm ra từ khác nhau cho 2 chuỗi, ví dụ: mình có 2 chuỗi string: s1= “Hôm nay là một ngày TRỜI rất đẹp”, s2=“Hôm nay là một ngày rất đẹp”. có cách nào kiểm tra để biết s2 chỉ khác chữ “trời” so với s1 k ạ?

string s1 = "Hôm nay là một ngày trời rất đẹp";
string s2 = "Hôm nay là một ngày rất đẹp";
// Chia chuỗi thành mảng các từ
string[] words1 = s1.Split(' ');
string[] words2 = s2.Split(' ');

var differentWords = words1.Except(words2, StringComparer.OrdinalIgnoreCase);

Hiện mình đã thử lệnh Except thì nó đã trả kết quả là chữ “trời”. Nhưng nếu s2=" Hôm nay là một ngày rất đẹp trời" thì kết quả lệnh trên sẽ trả về là differentWords = rỗng.

Mình nói rõ hơn về output case này là
s1=“Hôm nay là một ngày trời rất đẹp”,
s2="“Hôm nay là một ngày [1] rất đẹp trời [2]” => thì cả 2 output: trời [1 - bị xóa], trời [2 - được thêm] hoặc đưa ra output là “rất đẹp trời” đều được chấp nhận.
Cảm ơn mọi người rất nhiều ạ.
À, bài toán của mình s1, s2 rất lớn (cỡ 1 đến vài trang A4), nhưng số lượng sai là không nhiều.

Bạn biết lệnh diff chứ? Bạn có thể xài nó không?

https://www.nielit.gov.in/gorakhpur/sites/default/files/Gorakhpur/alevel_unix_07_apr20_AKM.pdf

2 Likes

Cảm ơn bạn, để mình đọc thêm lệnh này ạ!

Sử dụng git hoặc winMerge để so sánh.

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