So sánh 2 chuỗi giống nhau năm 2024

Bạn đang ở đây

admin gửi vào Thứ bảy, 30 Tháng 8, 2014 - 18:04

  • 26119 lượt xem

Giới thiệu

Chúng ta có nhiều cách để so sánh chuỗi trong môi trường lập trình Arduino. Trong đó, ta có thể dùng các toán tử như \>=, <=, <, \>, \= hoặc sử dụng các hàm của thư viện String như equals(), equalsIgoreCase().

Việc so sánh chuỗi là việc so sánh mã của ký tự khác nhau đầu tiên của cả 2 chuỗi. Ví dụ, '1' < '2', 'a' < 'b', '999' > '1000' (vì ký tự đầu tiên khác nhau của 2 chuỗi đó nằm ở vị trí thứ 0 và ký tự '9' trong mã ASCII có giá trị lớn hơn ký tự '1').

Lưu ý: Chúng ta rất dễ bị nhầm lẫn rằng việc so sánh chuỗi số cũng chính là so sánh số. Điều này không chính xác (ví dụ trên), và vì vậy ta cần phải cẩn thận khi so sánh các chuỗi số. Và điều đơn giản nhất đó là việc ta chuyển số các chuỗi số ấy thành số ở các kiểu như int, float, long,...

Bây giờ hãy gắn Arduino vào máy tính và upload đoạn code sau và rút kinh nghiệm của riêng mình!

Lập trình

String stringOne, stringTwo; void setup() { // Mở cổng Serial với mức baudrate 9600 Serial.begin(9600); while (!Serial) {

; // đợi khi nào cổng Serial được bật (chỉ cần thiết đối với mạch Leonardo)
} stringOne = String("this"); stringTwo = String("that"); } void loop() { // so sánh 2 chuỗi có bằng nhau hay không (cách 1) if (stringOne == "this") {
Serial.println("StringOne == \"this\"");
} // nếu 2 chuỗi khác nhau if (stringOne != stringTwo) {
Serial.println(stringOne + " =! " + stringTwo);
} // trường hợp 2 từ cùng 1 nghĩa nhưng cách viết khác nhau (hoa, thường) stringOne = "This"; stringTwo = "this"; //Vì viết khác định dạng nên khi so sánh, 2 chuỗi này sẽ không bằng nhau if (stringOne != stringTwo) {
Serial.println(stringOne + " =! " + stringTwo);
} // Bạn có thể dùng hàm equals để kiểm tra 2 chuỗi có giống (bằng) nhau hay không if (stringOne.equals(stringTwo)) {
Serial.println(stringOne + " equals " + stringTwo); //equals nghĩa là bằng
} else {
Serial.println(stringOne + " does not equal " + stringTwo); // does not equal nghĩa là không bằng
} // hoặc trong trường hợp bạn muốn kiểm tra 2 chuỗi có bằng nhau hay không mà không phân biệt hoa thường if (stringOne.equalsIgnoreCase(stringTwo)) {
Serial.println(stringOne + " equals (ignoring case) " + stringTwo); //bằng (không phân biệt hoa thường)
} else {
Serial.println(stringOne + " does not equal (ignoring case) " + stringTwo); // không bằng (không phân biệt hoa thường)
} // một chuỗi số nguyên có thể so sánh với 1 số nguyên bằng cách... stringOne = "1"; int numberOne = 1; if (stringOne.toInt() == numberOne) {
Serial.println(stringOne + " = " + numberOne);
} // so sánh 2 chuỗi số nguyên stringOne = "2"; stringTwo = "1"; if (stringOne >= stringTwo) {
Serial.println(stringOne + " >= " + stringTwo);
} // các toán tử so sánh cũng có thể dùng để so sánh 2 chuỗi stringOne = String("Brown"); if (stringOne < "Charles") {
Serial.println(stringOne + " < Charles");
} if (stringOne > "Adams") {
Serial.println(stringOne + " > Adams");
} if (stringOne <= "Browne") {
Serial.println(stringOne + " <= Browne");
} if (stringOne >= "Brow") {
Serial.println(stringOne + " >= Brow");
} // hàm compareTo() dùng để so sánh 2 chuỗi // nó sẽ trả về 1 số nguyên là vị trí đầu tiên (tính từ bên trái) // khác nhau giữa 2 chuỗi. // số nguyên nó là số âm nếu chuỗi A bé hơn chuỗi B // là số dương nếu chuỗi A lớn hơn chuỗi B // và bằng 0 khi 2 chuỗi bằng nhau. stringOne = "Cucumber"; stringTwo = "Cucuracha"; if (stringOne.compareTo(stringTwo) < 0 ) {
Serial.println(stringOne + " be hon " + stringTwo);
} else {
Serial.println(stringOne + " lon hon " + stringTwo);    
} while (true) {} //dừng chương trình không chạy tiếp nữa }

So sánh 2 chuỗi giống nhau năm 2024

Hãy trở thành thành viên của Cộng đồng Arudino Việt Nam để mở khóa chức năng này.

Trong một số trường hợp, bạn có thể chỉ cần so sánh hai ô liền kề của chuỗi và đánh dấu các điểm tương đồng hoặc khác biệt của chúng trong Excel. Bài viết này cung cấp hai phương pháp để bạn đạt được nó.


So sánh hai chuỗi với công thức

Như ảnh chụp màn hình bên dưới được hiển thị, nếu bạn chỉ muốn biết liệu các chuỗi được so sánh có khớp hay không, bạn có thể áp dụng công thức sau.

So sánh 2 chuỗi giống nhau năm 2024

1. Chọn một ô trống C2, nhập công thức \= CHÍNH XÁC (A2, B2) vào Thanh công thức, rồi nhấn phím Đi vào. Xem ảnh chụp màn hình:

So sánh 2 chuỗi giống nhau năm 2024

Chú thích: Trong công thức, A2 và B2 là các ô chứa các chuỗi so sánh.

2. Tiếp tục chọn ô kết quả, sau đó kéo Fill Handle đến các ô cho đến khi nhận được tất cả các kết quả được so sánh.

Kết quả FALSE có nghĩa là các chuỗi được so sánh là khác nhau và kết quả TRUE cho biết hai chuỗi được so sánh là khớp. Xem ảnh chụp màn hình:

So sánh 2 chuỗi giống nhau năm 2024


So sánh hai chuỗi về sự giống nhau hoặc đánh dấu sự khác biệt với mã VBA

Nếu bạn muốn so sánh hai chuỗi và làm nổi bật sự giống nhau hoặc khác nhau giữa chúng. Mã VBA sau đây có thể giúp bạn.

1. nhấn Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun. Sau đó sao chép và dán đoạn mã sau vào cửa sổ Mã.

Mã VBA: So sánh hai chuỗi cột để biết sự giống nhau hoặc đánh dấu sự khác biệt

Sub highlight()
    Dim xRg1 As Range
    Dim xRg2 As Range
    Dim xTxt As String
    Dim xCell1 As Range
    Dim xCell2 As Range
    Dim I As Long
    Dim J As Integer
    Dim xLen As Integer
    Dim xDiffs As Boolean
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg1 = Application.InputBox("Range A:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg1 Is Nothing Then Exit Sub
    If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
lTwo:
    Set xRg2 = Application.InputBox("Range B:", "Kutools for Excel", "", , , , , 8)
    If xRg2 Is Nothing Then Exit Sub
    If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lTwo
    End If
    If xRg1.CountLarge <> xRg2.CountLarge Then
       MsgBox "Two selected ranges must have the same numbers of cells ", vbInformation, "Kutools for Excel"
       GoTo lTwo
    End If
    xDiffs = (MsgBox("Click Yes to highlight similarities, click No to highlight differences ", vbYesNo + vbQuestion, "Kutools for Excel") = vbNo)
    Application.ScreenUpdating = False
    xRg2.Font.ColorIndex = xlAutomatic
    For I = 1 To xRg1.Count
        Set xCell1 = xRg1.Cells(I)
        Set xCell2 = xRg2.Cells(I)
        If xCell1.Value2 = xCell2.Value2 Then
            If Not xDiffs Then xCell2.Font.Color = vbRed
        Else
            xLen = Len(xCell1.Value2)
            For J = 1 To xLen
                If Not xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Then Exit For
            Next J
            If Not xDiffs Then
                If J <= Len(xCell2.Value2) And J > 1 Then
                    xCell2.Characters(1, J - 1).Font.Color = vbRed
                End If
            Else
                If J <= Len(xCell2.Value2) Then
                    xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbRed
                End If
            End If
        End If
    Next
    Application.ScreenUpdating = True
End Sub

3. Nhấn nút F5 phím để chạy mã. Trước hết Kutools cho Excel hộp thoại, chọn cột đầu tiên của chuỗi văn bản bạn cần so sánh, sau đó bấm vào OK .

So sánh 2 chuỗi giống nhau năm 2024

4. Sau đó, thứ hai Kutools cho Excel hộp thoại bật lên, vui lòng chọn chuỗi cột thứ hai và nhấp vào OK .

So sánh 2 chuỗi giống nhau năm 2024

5. Cuối cùng Kutools cho Excel hộp thoại, nếu bạn muốn so sánh các chuỗi để tìm sự giống nhau, hãy nhấp vào Có cái nút. Và để làm nổi bật sự khác biệt của các chuỗi được so sánh, hãy nhấp vào Không cái nút. Xem ảnh chụp màn hình: