将string转换为Uri
如何将一个string转换为Java中的Uri(Android)? 即:
String myUrl = "http://stackoverflow.com";
myUri = ???;
你可以使用Uri
的parse
静态方法
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的URI和Uri是有区别的。
如果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());