回答
您可以使用从Uri
Uri myUri = Uri.parse("http://stackoverflow.com")
你打算用URI做parse
静态方法?
如果您打算将它与HttpGet一起使用,则可以直接在创建HttpGet实例时使用该字符串。
HttpGet get = new HttpGet("http://stackoverflow.com");
但是例如'android.widget.ImageView.setImageURI'不会 - 所以这是一个完全有效的问题。 – Martin 2011-04-27 14:55:02
其实这并不能回答这个问题 – 2015-09-22 14:47:39
我只是用java.net
包。 在这里,你可以做到以下几点:
String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
您可以通过使用Uri.parse()解析字符串到URI,如下图所示:
Uri myUri = Uri.parse("http://stackoverflow.com");
以下是你如何用一个例子你新创建的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);
}
如果URI未完全编码为其标准,则java.net.URI
中的Java解析器将失败。例如,尝试解析:http://www.google.com/search?q=cat|dog
。竖条会引发异常。
urllib可以很容易地将字符串转换为java.net.URI
。它会预处理和转义URL。
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());
如果您正在使用科特林和科特林Android的扩展,再有就是这样的一个美丽的方式。
val uri = myUriString.toUri()
要科特林扩展(KTX)添加到您的项目中添加以下到您的应用程序模块的build.gradle
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:0.1'
}
- 1. 将Uri转换为字符串和字符串到Uri
- 2. 将字符串转换为URI
- 3. URI转换为字符串在C#中
- 4. 将字符串转换为字符串
- 5. 将字节[]转换为数据URI的Base64字符串
- 6. 将字符串转换为
- 7. 将字符串转换为“_”
- 8. 将字符串转换为?
- 9. 如何将字符串转换为URI组件?
- 10. 如何将字符串转换为Uri类型(简单)
- 11. 将字符串转换为资源Uri进行MP3播放
- 12. Java - 将字符串转换为有效的URI对象
- 13. 将字符串转换为字符
- 14. 将字符串转换为字符
- 15. 将字符串转换为字符
- 16. 将char字符串转换为字符
- 17. Java - 将字符串转换为字符[]
- 18. InfixToPostfix将字符转换为字符串
- 19. 将JavaScript符号转换为字符串?
- 20. 将字符串转换为运算符
- 21. JQuery.each将字符串文字转换为字符串。为什么?
- 22. 将字符串转换为数字node.js
- 23. Knockout.js将数字转换为字符串
- 24. 将字符串转换为字列表?
- 25. 将字符串转换为字节[]
- 26. Java - 将字节[]转换为字符串
- 27. 将字节转换为字符串
- 28. 将字符串转换为字节
- 29. 将字符串转换为数字
- 30. 将字符串转换为python字典
我已经试过这个解决方案,但我有一个问题吧。第一个Uri需要更改为URI(如果它来自java.net包)。其次,它没有“解析”构造函数。你有什么想法我做错了吗? – 2015-09-22 14:53:22
http://developer.android.com/reference/android/net/Uri.html有一个带'parse'方法的'Uri'类。还有一个没有'parse'方法的'URI'类http://developer.android.com/reference/java/net/URI.html。所以正确的课程是'Uri'。确保你有正确的导入 – ccheneson 2015-09-22 15:06:42
@ccheneson为什么应该更正确的URI呢?使用URI,你可以使用'create'方法。它和Uri一样简单。那么你从Uri那里得到什么好处? – kaba713 2017-05-23 15:22:58