Wie kann ich einen String in Java (Android) in einen Uri konvertieren? d.h.
String myUrl = "http://stackoverflow.com";
myUri = ???;
Sie können die statische Methode parse
von Uri
verwenden.
Uri myUri = Uri.parse("http://stackoverflow.com")
Ich verwende nur das Java.net
package . Hier können Sie Folgendes tun:
String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
Wenn Sie Kotlin und Kotlin Android-Erweiterungen verwenden, gibt es eine schöne Möglichkeit, dies zu tun.
val uri = myUriString.toUri()
Um Kotlin-Erweiterungen (KTX) zu Ihrem Projekt hinzuzufügen, fügen Sie Folgendes zum build.gradle Ihres App-Moduls hinzu
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Sie können einen String mit einem Uri parsen, indem Sie URI.PARSE () wie folgt verwenden:
Uri myUri = Uri.parse("http://stackoverflow.com");
Das folgende Beispiel zeigt, wie Sie den neu erstellten Uri implizit verwenden können. In einem Browser auf dem Telefon des Benutzers angezeigt werden.
// 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);
}
NB: Es gibt einen Unterschied zwischen den Androiden URI und URI.
Was machen Sie mit der URI?
Wenn Sie es beispielsweise nur mit einem HttpGet verwenden möchten, können Sie die Zeichenfolge direkt beim Erstellen der HttpGet-Instanz verwenden.
HttpGet get = new HttpGet("http://stackoverflow.com");
Javas Parser in Java.net.URI
schlägt fehl, wenn der URI nicht vollständig nach seinen Standards codiert ist. Versuchen Sie beispielsweise zu analysieren: http://www.google.com/search?q=cat|dog
. Für den vertikalen Balken wird eine Ausnahme ausgelöst.
urllib macht es einfach, einen String in einen Java.net.URI
zu konvertieren. Die URL wird vorverarbeitet und entzogen.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());