【问题标题】:Add http://www. in the text if not Exist添加 http://www.在文本中如果不存在
【发布时间】:2012-05-25 21:33:11
【问题描述】:

我怎么知道某些文本包含“http://www”。我想在 Web 视图中显示域。域名写在 TextView 中,但不限制添加前缀。如果用户没有输入,我必须在 webview 中添加和显示 URL。

【问题讨论】:

    标签: android android-webview textview android-textattributes


    【解决方案1】:

    你可以这样做

    String url = textView.getText().toString();
    if(!url.startsWith("www.")&& !url.startsWith("http://")){
      url = "www."+url;
    }
    if(!url.startsWith("http://")){
      url = "http://"+url;
    }
    

    您可以使用此 url 在 WebView 中显示内容

    希望这能解决您的问题

    【讨论】:

    • 这种方法比使用正则表达式要简单一些。无论如何,您还应该处理用户键入www.domain.com的情况
    • 嘿塞巴斯蒂安,请再次检查答案
    • 嗯,这种方法有问题(您最终可能会得到像 www.http://www.domain.com 这样的 URL)。反正我觉得发帖人会根据自己的需要来调整代码的。
    • 嗨塞巴斯蒂安,请检查改进的答案
    • if(!byte_link.startsWith("www.") ){ if (!byte_link.startsWith("http")) { byte_link = "www." + 字节链接; } } if(!byte_link.startsWith("http://")){ byte_link = "http"+byte_link; } 应该更正
    【解决方案2】:

    刚刚修改了@silwar 答案并添加了 https :

     if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){
            url = "www."+url;
        }
        if(!url.startsWith("http://") && !url.startsWith("https://")){
            url = "http://"+url;
        }
    

    但请记住,有时http:// 会在 android 中创建安全异常,因此我们应该使用 https://。所以对于无风险代码,我们必须像上次检查一样这样做 -

     if(!url.startsWith("http://") && !url.startsWith("https://")){
                url = "https://"+url;}
    

    【讨论】:

      【解决方案3】:

      检查域名格式是否正确以及是否包含(或不包含)前缀的最有效方法是使用正则表达式。

      查看 Java Pattern 以匹配 Android 中的正则表达式。这是值得的。

      【讨论】:

      • 链接已失效 (404)
      【解决方案4】:

      正如 Sebastien 所要求的,正则表达式是一个不错的选择。 你也可以从视图中获取文本,创建一个URI对象

      Uri uri = Uri.create(view.getText().toString());
      

      然后使用 uri.somemethod 您应该能够获得有关您想知道的 url 的所有信息。 如果 uri 创建失败,您会生成错误消息,导致出现问题。

      【讨论】:

        【解决方案5】:

        我只会从 TextView 中获取文本并通过startsWith() 对其进行解析。 如果这是错误的,只需将其添加到文本中并使用 setText() 重新签名即可。

        您可能还想检查其他表达式,例如“www.”。所以仔细看看 contains()。

        【讨论】:

          【解决方案6】:

          试试这个

          String a = "http://";
          webview.loadUrl(a + url.getText().toString());
          

          【讨论】:

            猜你喜欢
            • 2011-02-15
            • 2023-03-23
            • 2015-10-31
            • 2012-08-28
            • 1970-01-01
            • 1970-01-01
            • 2011-12-16
            • 1970-01-01
            • 2021-09-26
            相关资源
            最近更新 更多