将string转换为Uri

如何将一个string转换为Java中的Uri(Android)? 即:

String myUrl = "http://stackoverflow.com"; 

myUri = ???;

你可以使用Uriparse静态方法

 Uri myUri = Uri.parse("http://stackoverflow.com") 

我只是使用java.net包。 在这里你可以做到以下几点:

 String myUrl = "http://stackoverflow.com"; URI myURI = new URI(myUrl); 

你打算如何处理URI?

例如,如果只打算使用HttpGet,则可以直接在创buildHttpGet实例时使用该string。

 HttpGet get = new HttpGet("http://stackoverflow.com"); 

您可以使用Uri.parse()将stringparsing为Uri,如下所示:

 Uri myUri = Uri.parse("http://stackoverflow.com"); 

下面是一个如何使用新创build的Uri的例子。 要在用户电话的浏览器中查看。

 // Creates a new Implicit Intent, passing in our Uri as the second paramater. Intent webIntent = new Intent(Intent.ACTION_VIEW, myUri); // Checks to see if there is an Activity capable of handling the intent if (webIntent.resolveActivity(getPackageManager()) != null){ startActivity(webIntent); } 

注意: Android的URIUri是有区别的。

如果URI没有完全编码到其标准, java.net.URI Javaparsing器将会失败。 例如,尝试parsing: http://www.google.com/search?q=cat|dog : http://www.google.com/search?q=cat|dog ?q http://www.google.com/search?q=cat|dog cat| http://www.google.com/search?q=cat|dog 。 竖条会引发exception。

urllib可以很容易地将string转换为java.net.URI 。 它会预处理和转义的URL。

 assertEquals("http://www.google.com/search?q=cat%7Cdog", Urls.createURI("http://www.google.com/search?q=cat|dog").toString());