public static URL parseDecodedStr(String decodedURLStr) {
        Map<String, String> parameters = null;
        int pathEndIdx = decodedURLStr.indexOf('?');
        if (pathEndIdx >= 0) {
            parameters = parseDecodedParams(decodedURLStr, pathEndIdx + 1);
        } else {
            pathEndIdx = decodedURLStr.length();
        }

        String decodedBody = decodedURLStr.substring(0, pathEndIdx);
        return parseURLBody(decodedURLStr, decodedBody, parameters);
    }
@Test
    void testPond() {
        String str = "https://a#@b";

        URL url1 = URL.valueOf(str);
        URL url2 = URLStrParser.parseDecodedStr(str);

        Assertions.assertEquals("https", url1.getProtocol());
        Assertions.assertEquals("https", url2.getProtocol());
        Assertions.assertEquals("a", url1.getHost());
        Assertions.assertEquals("a", url2.getHost());
    }