> Java > java지도 시간 > 외부 라이브러리 없이 Java에서 URI 쿼리 문자열을 이름-값 쌍으로 구문 분석하는 방법은 무엇입니까?

외부 라이브러리 없이 Java에서 URI 쿼리 문자열을 이름-값 쌍으로 구문 분석하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-24 21:34:33
원래의
326명이 탐색했습니다.

How to Parse URI Query Strings into Name-Value Pairs in Java Without External Libraries?

URI 문자열을 이름-값 컬렉션으로 구문 분석

소개

URI 문자열을 구성 요소로 구문 분석하는 것은 웹 개발의 일반적인 작업입니다. 이 작업을 수행하기 위해 Java는 여러 내장 기능과 외부 라이브러리를 제공합니다. 이 기사에서는 외부 종속성을 사용하지 않고 URI 문자열을 구문 분석하는 Java 기반 솔루션에 중점을 둡니다.

쿼리 매개변수 구문 분석

URI의 쿼리 부분에는 '&' 성격. 이러한 매개변수를 맵으로 구문 분석하려면 다음 방법을 사용할 수 있습니다.

public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
    Map<String, String> query_pairs = new LinkedHashMap<>();
    String query = url.getQuery();
    String[] pairs = query.split("&");
    for (String pair : pairs) {
        int idx = pair.indexOf("=");
        query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
    }
    return query_pairs;
}
로그인 후 복사

샘플 사용법

주어진 URL을 예로 사용:

https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback
로그인 후 복사

SplitQuery 메소드는 다음 맵을 반환합니다:

{client_id=SS, response_type=code, scope=N_FULL, access_type=offline, redirect_uri=http://localhost/Callback}
로그인 후 복사

인코딩 고려 사항

이 방법에는 매개변수 값에 있는 특수 문자를 처리하기 위한 URL 디코딩이 포함되어 있습니다.

동일한 키를 사용하여 여러 매개변수 처리

방법의 업데이트된 버전이 제공되었습니다. 여러 매개변수에 동일한 키가 있는 시나리오를 처리합니다. 이 버전은 Map> 특정 키에 대한 모든 값을 추적합니다.

Java 8 버전

간결하고 효율적인 솔루션을 위해 람다 표현식과 스트림을 활용하는 Java 8 구현도 가능합니다.

결론

splitQuery 메서드를 사용하면 URI 쿼리 문자열을 구성 요소 이름-값 쌍으로 쉽게 구문 분석할 수 있습니다. 외부 라이브러리에 의존하지 않고. 이 기능은 사용자 입력 추출 또는 RESTful 엔드포인트에서 매개변수 검색과 같은 다양한 웹 개발 작업에 필수적입니다.

위 내용은 외부 라이브러리 없이 Java에서 URI 쿼리 문자열을 이름-값 쌍으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿