匹配字符串的部分

Mar*_*ark -2 regex vb.net string

我有2个字符串,每个字符串包含25个字符.例如

   X = "0000111111110111111111110"
   Y = "0000011111000000000000000"
Run Code Online (Sandbox Code Playgroud)

如果每个具有"1"字符串Y的位置在字符串X中也具有"1",那么识别最有效的方法是真还是假?在这个例子中它应该返回True,因为X中有1个匹配Y中所有1的位置.

我可以阅读每个角色的位置并对所有25个进行比较,但希望有些聪明的人会知道更优雅的方式.

GSe*_*erg 5

更容易的方法是使用Convert.ToInt32()解析字符串作为二进制文字并执行二进制数值AND:

Public Function MatchAsBinary(ByVal x As String, ByVal y As String) As Boolean
    Dim x_int = Convert.ToInt32(x, 2)
    Dim y_int = Convert.ToInt32(y, 2)

    Return (x_int And y_int) = y_int
End Function
Run Code Online (Sandbox Code Playgroud)

(〜10次发布版本)的方法是将字符直接比较:

Public Function MatchAsChars(ByVal x As String, ByVal y As String) As Boolean
    For i As Integer = 0 To y.Length - 1
        If y(i) = "1"c AndAlso x(i) = "0"c Then
            Return False
        End If
    Next

    Return True
End Function
Run Code Online (Sandbox Code Playgroud)