it-swarm.com.de

Konvertieren Sie String in Uri

Wie kann ich einen String in Java (Android) in einen Uri konvertieren? d.h.

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

myUri = ???;

141
Techboy

Sie können die statische Methode parse von Uri verwenden.

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

Ich verwende nur das Java.net package . Hier können Sie Folgendes tun:

String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
19
Jürgen K.

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'
}
4

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.

2
JSON C11

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");
1
Stuart Grimshaw

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());
0
EricE