Vb.net 连续两个字符串

Vb.net 连续两个字符串,vb.net,string,concatenation,Vb.net,String,Concatenation,我想合并两个字符串 示例: 第一个字符串:www.org.a.org 第二个字符串:.org.lb 结果字符串:www.org.a.org.lb 示例: 第一个字符串:www.google.com 第二个字符串:google.com 结果字符串:www.google.com 严格按照您提供的示例,我将创建一个函数,将字符串合并在一起 函数应检查string1是否包含string2,以了解是否需要合并。如果此检查为false,则将string2分开,并检查每个片段是否在string1中,如果不在s

我想合并两个字符串

示例:

第一个字符串:www.org.a.org

第二个字符串:.org.lb

结果字符串:www.org.a.org.lb

示例:

第一个字符串:www.google.com

第二个字符串:google.com

结果字符串:www.google.com


严格按照您提供的示例,我将创建一个
函数
,将字符串合并在一起

函数应检查string1是否包含string2,以了解是否需要合并。如果此检查为false,则将string2分开,并检查每个片段是否在string1中,如果不在string1中,则将其添加到末端(假设合并时始终将其添加到末端)

输出:

www.org.a.org.lb

www.google.com


看看你的问题,你似乎有一些你没有说的规则。下面的函数按照您的要求执行,并返回您在给出的两个示例中所期望的字符串

Function MergeStrings(str1 As String, str2 As String) As String
    Dim pos, overlap As Integer
    If str1.Length > str2.Length Then pos = str1.Length - str2.Length 

    overlap = str1.Length - pos
    Do While overlap > 0
        If str1.Substring(pos, overlap) = str2.Substring(0, overlap) Then Return str1.Substring(0, pos) & str2 
        pos += 1
        overlap = str1.Length - pos
    Loop
    Return str1 & str2 
End Function

这是一个危险的领域。域扩展(TLD)可能非常复杂,现有TLD的列表总是在变化。为了正确地做到这一点,您必须在每次解析公共TLD时下载当前的公共TLD列表,以证明您所做的任何解析。但是,如果您不担心这一点,您可以简单地在原始字符串中找到句点字符的最后一次出现,然后从那里删除所有内容,然后添加新的扩展名。在第二次测试中,切换两个参数。输出变成
google.com.www.google.com
。我不确定这是他想要的。@Guerudo OP帖子中的示例表明,第一个字符串是开头,第二个是附加项。否则,如果忽略这些字符串是URL,您怎么知道哪个字符串是开头呢?
Imports System

Public Module Module1

    Public Sub Main()
        Console.WriteLine(MergeString("www.org.a.org", ".org.lb"))
        Console.WriteLine(MergeString("www.google.com", "google.com"))
    End Sub

    Public Function MergeString(ByVal str1 As String, ByVal str2 As String) As String
        If str1.EndsWith(str2)
            Return str1
        Else
            Dim str2Pieces() = str2.Split("."c)
            For i = 0 to str2Pieces.Length - 1
                If String.IsNullOrEmpty(str2Pieces(i)) = False
                    If str1.EndsWith(str2Pieces(i)) = False
                        str1 = str1 & "." & str2Pieces(i)
                    End If
                End If
            Next

            Return str1
        End If
    End Function
End Module
Function MergeStrings(str1 As String, str2 As String) As String
    Dim pos, overlap As Integer
    If str1.Length > str2.Length Then pos = str1.Length - str2.Length 

    overlap = str1.Length - pos
    Do While overlap > 0
        If str1.Substring(pos, overlap) = str2.Substring(0, overlap) Then Return str1.Substring(0, pos) & str2 
        pos += 1
        overlap = str1.Length - pos
    Loop
    Return str1 & str2 
End Function