【问题标题】:How to reverse a URL in VB?如何在VB中反转URL?
【发布时间】:2012-01-14 17:47:50
【问题描述】:

我有一个名为“主页”的字符串,如下所示:

Dim homepage As String
homepage = TextBox1.Text

例如,主页等于“http://www.example.com”。我需要做的就是将 URL 反转为没有“http://www”的“com.example”。 我试过以下代码:

Dim i As String = Microsoft.VisualBasic.Right(homepage, (InStr(homepage, ".")))
Label1.Text = i

该代码应该选择最后一个句号之后的所有字母,但事实并非如此。有人可以帮帮我吗?如果需要,我会提供更多信息。 URL 并不总是以 http://www 开头,但它确实以 http:// 开头。 URL 并不总是有 www。

【问题讨论】:

    标签: vb.net string reverse


    【解决方案1】:

    您正在使用 Right 在字符串末尾获取 n 个字符。但是您作为参数从InStr 传递的值会返回字符串开头的位置。

    尝试从字符串长度中减去InStr返回的值。

    【讨论】:

      【解决方案2】:

      网址是否总是以“http://www.”开头?

      Dim reversedPartUrl As String = String.Join(".", homepage.Replace("http://www.", "").Split("."c).Reverse)
      

      或者如果有机会最后会有类似 /index.html 的东西,

      Dim homepage As Uri
      homepage = New Uri("http://www.example.com/index.html")
      Dim s As String = String.Join(".", homepage.Host.Split("."c).Reverse)
      

      【讨论】:

      • 不,它并不总是以www 开头。因为有些人有子域。但是,它总是以 http:// 开头
      • 您应该可以修改我给的代码行以满足您的要求。
      【解决方案3】:
       Dim homepage As String
              homepage = "http://www.stackoverflow.com/"
      
              'Reverse the URL
              Dim revURL = StrReverse(homepage)
      
              Dim theURL
              theURL = Left(revURL, InStr(InStr(revURL, ".") + 1, revURL, ".") - 1)
      
              ' Reverse it back
              homepage = StrReverse(theURL)
              Console.WriteLine(homepage)
              Console.ReadKey()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-09
        • 1970-01-01
        • 1970-01-01
        • 2020-07-07
        • 2015-06-28
        • 1970-01-01
        • 2019-09-26
        • 2012-01-04
        相关资源
        最近更新 更多