문자열을 Uri로 변환
Java (Android)에서 문자열을 Uri로 변환하려면 어떻게해야합니까? 즉 :
String myUrl = "http://stackoverflow.com";
myUri = ???;
parse
정적 메소드를 사용할 수 있습니다.Uri
Uri myUri = Uri.parse("http://stackoverflow.com")
난 그냥 java.net
패키지를 사용하고 있습니다. 여기서 다음을 수행 할 수 있습니다.
String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
Kotlin 및 Kotlin 안드로이드 확장을 사용하는 경우 이를 수행하는 아름다운 방법이 있습니다.
val uri = myUriString.toUri()
Kotlin 확장 ( KTX )을 프로젝트에 추가하려면 앱 모듈의 build.gradle에 다음을 추가하십시오.
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
아래와 같이 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);
}
NB : Androids URI 와 Uri 사이에는 차이가 있습니다 .
URI로 무엇을 하시겠습니까?
예를 들어 HttpGet과 함께 사용하려는 경우 HttpGet 인스턴스를 만들 때 문자열을 직접 사용할 수 있습니다.
HttpGet get = new HttpGet("http://stackoverflow.com");
java.net.URI
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());
참고 URL : https://stackoverflow.com/questions/3487389/convert-string-to-uri
'programing tip' 카테고리의 다른 글
org.hibernate.LazyInitializationException 수정하는 방법-프록시를 초기화 할 수 없습니다-세션 없음 (0) | 2020.06.06 |
---|---|
HTML 텍스트 오버플로 줄임표 감지 (0) | 2020.06.06 |
데몬을 만들 때 이중 포크를 수행하는 이유는 무엇입니까? (0) | 2020.06.06 |
파일을 변경하면 노드를 다시 시작하십시오. (0) | 2020.06.06 |
Maven을 통한 Java 7 코드 컴파일 (0) | 2020.06.06 |