1

私はプログラミングの初心者で、以下の文字列を分離できるかどうか尋ねたい. Visual Basic を使用しています。基本的に私は以下の2つの文字列を持っています:

文字列 1 : gOldStr= TEDDYBEARBLACKCAT

文字列 2 = gNewStr= BLACKCATWHITECAT

文字列 1 の正確な値を調べて、文字列 2 を分離したかった

文字列1 = BLACKCATの一部であるString2があるように

新しい文字列 2 = WHITECAT

以下のスクリプトを試しましたが、常に機能するとは限りません。より良いロジックを提案できますか? ありがとう2

For i=1 to Len(gOldStr)
        TempStr = Left$(gNewStr,i) 
        Ctr1 = InStr(gOldStr, TempStr)
        gTemporary = Mid$(gOldStr,Ctr1)

        gTemporary = Trim(gTemporary)

        Ctr2 = StrComp(gOldStr, gTemporary)
        If Ctr2=1 Then
                gTemporary2 = Replace(gNewStr,gTemporary,"")
                Exit For
        End If
Next i 
4

1 に答える 1

0

共通部分が常に最初の部分の最後と 2 番目の部分の最初にある場合、次のように最後から見ることができます。

Dim strMatchedWord As String
For i=1 to Len(gOldStr)
    If i>Len(gNewStr) Then Exit For  'We need this to avoid an error
    Test1 = Right$(gOldStr, i)
    Test2 = Left$(gNewStr, i)

    If Test1 = Test2 Then
        strMatchedWord = Test1     'Store your match is Test1
    End If
Next
Debug.Print strMatchedWord 'Once the loop finishes it contains the longest match 

文字列全体を通過するまでループが終了しないようにコードを修正しました。このようにして、ループの終わりまでに最長の一致を取得します。

于 2016-04-29T11:01:41.083 に答える