Vb.net 连续两个字符串
我想合并两个字符串 示例: 第一个字符串:www.org.a.org 第二个字符串:.org.lb 结果字符串:www.org.a.org.lb 示例: 第一个字符串:www.google.com 第二个字符串:google.com 结果字符串:www.google.comVb.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
严格按照您提供的示例,我将创建一个
函数
,将字符串合并在一起
函数应检查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